【问题标题】:get the array index in for statement in objective-c在objective-c中获取for语句中的数组索引
【发布时间】:2010-09-13 13:59:48
【问题描述】:

我陷入了一个愚蠢的混乱......
我不仅要获取数组的值,还要获取值的索引。
在 PHP 中很简单:foreach($array as $key->$value) 这里 $key 将包含索引值。
目标c中没有类似的方法吗?
我还能怎么做到这一点? 请帮忙! :((

【问题讨论】:

    标签: iphone objective-c


    【解决方案1】:

    与 php 不同的数组被编号为 0 大小的数组。我猜你说的是字典。如果是这样,您可以使用 [dict allKeys] 获取键数组。 所以这样的事情应该可以工作:

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

    【讨论】:

    • 谢谢 :).. 你是对的...我被字典和数组搞砸了(因为 php 中的关联数组非常像 Objective-c 中的字典!)。现在使用字典,我可以使用键和它的值!
    【解决方案2】:

    如果你在 iOS4 上,你可以这样做

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

    在 iOS 3.x 上你可以这样做

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

    【讨论】:

    • 只是好奇,-objectForKey: 是否比增加变量 idx 更好/更差?
    • objectForKey: 仅适用于字典。这里讨论的是数组。
    【解决方案3】:
    for (i=0;i<array.count;i++)
    {
      NSLog(@"Index=%d , Value=%@",i,[array objectAtIndex:i]);
    }
    

    使用它更简单...

    编码愉快...

    【讨论】:

      【解决方案4】:

      我无法对其进行测试,但我想我那天晚上确实做了类似的事情。从这个wiki看来你可以做类似的事情

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

      【讨论】:

      • 我不知道为什么这会被 -1'ed,我不会使用 NSObject *...但这更像是一种风格...
      【解决方案5】:
      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]);
      }
      

      【讨论】:

        猜你喜欢
        • 2023-03-18
        • 2012-08-20
        • 2011-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-31
        • 1970-01-01
        相关资源
        最近更新 更多