Ios5 与NSInteger一起使用for-in循环?

Ios5 与NSInteger一起使用for-in循环?,ios5,for-in-loop,Ios5,For In Loop,我有一个NSMutableArray,里面填充了NSInteger。我需要在数组中循环。我可以做到: // given NSMutableArray *array of NSIntegers NSUInteger n = [array count]; for (NSInteger i = 0; i < n; i++) { NSInteger x = [array objectAtIndex:i]; // query SQLite WHERE id = x } //给定NSMuta

我有一个NSMutableArray,里面填充了NSInteger。我需要在数组中循环。我可以做到:

// given NSMutableArray *array of NSIntegers
NSUInteger n = [array count];
for (NSInteger i = 0; i < n; i++) {
  NSInteger x = [array objectAtIndex:i];
  // query SQLite WHERE id = x
}
//给定NSMutableArray*NSInteger数组
NSUN整数=[数组计数];
对于(NSInteger i=0;i

然而,for(数组中的对象)循环似乎更干净。iOS 5不接受NSIntegers或NSNumbers作为循环中的对象。我是否应该使用NSObjects在数组中循环,在每次迭代期间将NSObject强制转换为NSInteger?还有别的办法吗?或者类似于上面的for循环是解决此问题的最干净的方法吗?

在Objective-C中,您可以将for-In循环与NSNumber一起使用,如下所示:

    NSArray *array = /*NSArray with NSNumber*/;

    for (NSNumber *n in array) {
        NSLog(@"i: %d", [n intValue]);
    }

检查此项。

通常,不允许您拥有NSMUTABLETERRAY的NSUPINTEGER(又称无符号长数组),因为它不是objective-c对象

您可以使用c样式

NSUInteger array[] = {value1,value2,value3};
int size = sizeof(array)/sizeof(array[0]);
for (int i=0; i<size; i++) {
   NSInteger value = array[i];
   // do whatever you want
}
nsuiger数组[]={value1,value2,value3};
int size=sizeof(数组)/sizeof(数组[0]);

对于(int i=0;i非常感谢。对于某些操作,NSNumber仍然需要转换为NSInteger,但这很好而且干净