I want to get the index of the current object when using fast enumeration, i.e.
for (MyClass *entry in savedArray) { // What is the index of |entry| in |savedArray|? }
Look at the API for NSArray and you will see the method
- (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block
So give that one a try
[savedArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { //... Do your usual stuff here obj // This is the current object idx // This is the index of the current object stop // Set this to true if you want to stop }];
I suppose the most blunt solution to this would be to simply increment an index manually.
NSUInteger indexInSavedArray = 0; for (MyClass *entry in savedArray) { indexInSavedArray++; }
Alternatively, you could just not use fast enumeration.
for (NSUInteger indexInSavedArray = 0; indexInSavedArray < savedArray.count; indexInSavedArray++) { [savedArray objectAtIndex:indexInSavedArray]; }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With