MCPcopy
hub / github.com/zhkl0228/unidbg / NSArray

Class NSArray

unidbg-ios/src/main/java/com/github/unidbg/ios/objc/NSArray.java:9–55  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7import java.util.Iterator;
8
9public class NSArray implements Iterable<ObjcObject>, PointerArg {
10
11 public static NSArray create(ObjcObject object) {
12 return object == null ? null : new NSArray(object);
13 }
14
15 private final ObjcObject object;
16
17 private NSArray(ObjcObject object) {
18 this.object = object;
19 }
20
21 @Override
22 public Pointer getPointer() {
23 return object.getPointer();
24 }
25
26 private class NSArrayIterator implements Iterator<ObjcObject> {
27
28 private final int count;
29
30 public NSArrayIterator() {
31 count = object.callObjcInt("count");
32 }
33
34 private int index;
35
36 @Override
37 public boolean hasNext() {
38 return index < count;
39 }
40 @Override
41 public ObjcObject next() {
42 return object.callObjc("objectAtIndex:", index++);
43 }
44 @Override
45 public void remove() {
46 throw new UnsupportedOperationException();
47 }
48 }
49
50 @Override
51 public Iterator<ObjcObject> iterator() {
52 return new NSArrayIterator();
53 }
54
55}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected