objective-cfast-enumeration

Keep track of index in fast enumeration


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|?
}

Solution

  • 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
    
    }];