Alternatively, you can use -enumerateObjectsUsingBlock:, which passes both the array element and the corresponding index as arguments to the block:
[items enumerateObjectsUsingBlock:^(id item, NSUInteger idx, BOOL *stop)
{
…
}];
Bonus: concurrent execution of the block operation on the array elements:
[items enumerateObjectsWithOptions:NSEnumerationConcurrent
usingBlock:^(id item, NSUInteger idx, BOOL *stop)
{
…
}];