【发布时间】:2010-09-13 13:59:48
【问题描述】:
我陷入了一个愚蠢的混乱......
我不仅要获取数组的值,还要获取值的索引。
在 PHP 中很简单:foreach($array as $key->$value) 这里 $key 将包含索引值。
目标c中没有类似的方法吗?
我还能怎么做到这一点?
请帮忙! :((
【问题讨论】:
标签: iphone objective-c
我陷入了一个愚蠢的混乱......
我不仅要获取数组的值,还要获取值的索引。
在 PHP 中很简单:foreach($array as $key->$value) 这里 $key 将包含索引值。
目标c中没有类似的方法吗?
我还能怎么做到这一点?
请帮忙! :((
【问题讨论】:
标签: iphone objective-c
与 php 不同的数组被编号为 0 大小的数组。我猜你说的是字典。如果是这样,您可以使用 [dict allKeys] 获取键数组。 所以这样的事情应该可以工作:
for(id key in [dict allKeys]){
id value = [dict objectForKey:key];
}
【讨论】:
如果你在 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: 仅适用于字典。这里讨论的是数组。
for (i=0;i<array.count;i++)
{
NSLog(@"Index=%d , Value=%@",i,[array objectAtIndex:i]);
}
使用它更简单...
编码愉快...
【讨论】:
我无法对其进行测试,但我想我那天晚上确实做了类似的事情。从这个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);
}
【讨论】:
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]);
}
【讨论】: