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

Reply via email to