2012-04-24 89 views
2

我有一个NSMutableArray填充NSIntegers。我需要遍历数组。我可以这样做:在NSInteger中使用for-in循环?

// 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 
} 

然而,似乎是一个对(对象数组)环路将清洁剂。 iOS 5不接受NSIntegers或NSNumbers作为for-in循环中的对象。我是否应该循环遍历NSObject的数组,在每次迭代期间将NSObject转换为NSInteger?有另一种方法吗?或者是一个for循环,就像这个问题最干净的解决方案之上的循环一样?

回答

5

在Objective-C,你可以使用for-与NSNumber的循环是这样的:

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

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

检查了这一点。

+0

非常感谢。对于某些操作,NSNumber仍然需要转换为NSInteger,但这很好,很干净 – tenedor 2012-04-24 15:41:46