2012-04-24 54 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