On Mar 7, 2012, at 3:35 AM, Conrad Shultz wrote: > On 3/6/12 12:42 PM, Prime Coderama wrote: >> I have an array and I am iterating through it using this technique: >> >>> for (id object in array) { >>> // do something with object >>> } >> >> Is there way to obtain the object's current array index position or do I >> have to add a counter? >> > > You could use [array indexOfObjectIdenticalTo:object]. > > But I'm partial to block-based enumeration, which gives you the index > "for free": > > - (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, > BOOL *stop))block;
Unless I missed the newest compiler technologies which are capable to inline blocks straight into the loop, invoking a block is essentially a jump to another code section or is akin a function call. This isn't free at all and prevents several optimizations by the compiler ;) Andreas _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com