3

NSInteger が取り込まれた NSMutableArray があります。配列をループする必要があります。私はそれをできた:

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

ただし、 for (配列内のオブジェクト) ループの方がクリーンなようです。iOS 5 は、for-in ループ内のオブジェクトとして NSIntegers または NSNumbers を受け入れません。各反復中に NSObject を NSInteger にキャストして、NSObjects を使用して配列をループする必要がありますか? 別の方法はありますか?または、上記のような for ループは、この問題に対する最もクリーンな解決策ですか?

4

2 に答える 2

7

Objective-C では、次のように NSNumber で for-in ループを使用できます。

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

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

これをチェックしてください。

于 2012-04-24T07:39:12.650 に答える