bangdel
bangdel

Reputation: 2553

get the array index in for statement in objective-c

I am stuck in a stupid mess...
I want to get not only the value of an array but also the index of the values.
In PHP it's simple: foreach($array as $key->$value) Here $key will contain the index value.
Isn't there a similar approach in objective c?
How else could I achieve this? Please help! :((

Upvotes: 2

Views: 3894

Answers (5)

Rahul
Rahul

Reputation: 10625

int arraySize = array.count;
// No need to calculate count/size always
for (int i=0; i<arraySize; i++)
{
    NSLog(@"Index=%d , Value=%@",i,[array objectAtIndex:i]);
}

Upvotes: 0

Suresh Varma
Suresh Varma

Reputation: 9740

for (i=0;i<array.count;i++)
{
  NSLog(@"Index=%d , Value=%@",i,[array objectAtIndex:i]);
}

Use this its simpler...

hAPPY cODING...

Upvotes: 1

RolandasR
RolandasR

Reputation: 3047

Arrays not like in php are numbered 0-size of array. I guess you talking about dictionary's. If so you can get array of key with [dict allKeys]. so something like this should work:

for(id key in [dict allKeys]){
  id value = [dict objectForKey:key];
}

Upvotes: 7

Joshua Weinberg
Joshua Weinberg

Reputation: 28688

If you're on iOS4 you can do

[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
                                   {
                                       NSLog(@"%@ is at index %u", obj, idx);
                                   }];

on iOS 3.x you can do

NSUInteger idx = 0;
for (id obj in array)
{
    NSLog(@"%@ is at index %u", obj, idx);
    idx++
}

Upvotes: 3

Aaron Hathaway
Aaron Hathaway

Reputation: 4315

I'm unable to test it, but I think I did do something similar the other night. From this wiki it looks like you can do something like

for(id key in d) {
    NSObject *obj = [d objectForKey:key];      // We use the (unique) key to access the (possibly non-unique) object.
    NSLog(@"%@", obj);
}

Upvotes: 0

Related Questions