-1

をフィルタリングしようとしていますNSMutableArray。特定の国でアイテムの配列を検索します。うまく機能するものを試しNSpredicateましたが、元の配列を再利用する必要があり、NSpredicate. だから私は以下のコードを試しています。

NSMutableArrayQ.元の配列をそのまま維持しながらフィルタリングする最良の方法は何ですか?

//次のコードは機能します

filteredArray = [[NSMutableArray alloc] init];
unsigned int i;
for (i = 0; i < [appDelegate.arrayToBeFiltered count]; i++) {
    id session = [appDelegate.ads objectAtIndex: i];
    id Country = [[appDelegate.arrayToBeFiltered objectAtIndex: i] TheCountry];
    [filteredArray addObject: session];

ただし、以下のように if ステートメントを追加すると、範囲を超えたインデックスが取得されます

filteredArray = [[NSMutableArray alloc] init];
unsigned int i;
for (i = 0; i < [appDelegate.arrayToBeFiltered count]; i++) {
    id session = [appDelegate.ads objectAtIndex: i];
    id Country = [[appDelegate.arrayToBeFiltered objectAtIndex: i] TheCountry];
    if (Country == @"United States"){
        [filteredArray addObject: session];
    }
}
4

1 に答える 1

0

使用 - (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)述語

補足として、上記のコードでは、おそらくこれを行うことを意味しています [Country isEqualToString: @"United States"]

追加の注意事項として、変数とメソッド名を大文字にしないでください。単なるスタイルの問題ですが、通常、大文字はクラス名用に予約されています

于 2009-10-09T09:56:29.723 に答える