-1

オブジェクトの配列があり、それぞれにyesまたはnoのbool値が含まれています。boolYESのすべてのオブジェクトを別の配列にコピーしたいと思います。どうやってやるの?述語を使用して配列をフィルタリングするか、forループに統合することを検討しましたが、正しく理解できないようです。

私はこのようなものが必要です:

for (BOOL* opslag_Set in [dataSource allKeys]){
    NSArray *array = [dataSource objectForKey:opslag_Set];
    for (int j = 0; j < [array count]; j++) {
        if ([[array objectAtIndex:j] isEqualToString:@"YES"]) {
            add object to another array;
        }
    }
}

私の配列の最初のオブジェクト:

    },
    {
    Dato = "2012-11-07 16:20:57 +0000";
    Forfatter = "Vej 51, st. tv.";
    Indhold = "Referat af beboerm\U00f8de";
    "Opslag_set" = 0;
    Overskrift = "Beboerm\U00f8de";
    Prioritet = 0;
    Svar =         (
                    {
            Dato = "2012-11-07 16:23:07 +0000";
            Forfatter = "6. tv.";
            Indhold = "Fedt fedt fedt";
        }
    );
},
4

1 に答える 1

2

NSNumberboolを配列に格納するには、を使用する必要があります。

ブール配列が呼び出されboolArrayたとすると、配列のみを取得するコードは次のYESようになります。

NSMutableArray* temp = [NSMutableArray new];
for (NSNumber* value in boolArray)
{
    if ([value boolValue])
    {
        [temp addObject:[NSNumber numberWithBool:YES]];
    }
}

しかし、なぜあなたはこれをやろうとしているのですか?これにより、すべて同じである特定の数の要素を含む配列が返されます。それがあなたが望むものであるならば、あなたはただ数を数えることができます。私が考えることができるもう1つのことは、boolプロパティを持つオブジェクトがあることです。この場合、上記のコードを簡単に適合させることができます。

編集:MyDataObject OK、 boolプロパティを持つと呼ばれるオブジェクトがあると仮定しましょう- NSNumber* boolProperty。コードは次のとおりです。

NSMutableArray* temp = [NSMutableArray new];
for (MyDataObject* value in boolArray)
{
    if ([value.boolProperty boolValue])
    {
        [temp addObject:value];
    }
}

これはあなたがしていることのために働くはずです。temp元のオブジェクトを参照します-それらはコピーされていません。

于 2012-11-15T20:54:09.060 に答える