0

私は NSPredicate を初めて使用するので、愚かな質問をしていたら申し訳ありません。2 つの NSArray (keyArray と valueArray) があります。keyArray を使用して valueArray で一致を見つける必要があります。以下のコードは正常に動作していますが、1 つずつ検索する必要があります。別のキー配列を使用して配列を検索する任意の方法。

        NSPredicate *userPredicate = [NSPredicate predicateWithFormat:@"companyId = %@", [[[self selectedCompanies] objectAtIndex:0] companiesIdentifier]];
    NSLog(@"Users: %@", [[[self userData] users] filteredArrayUsingPredicate:userPredicate]);

    NSPredicate *userPredicate1 = [NSPredicate predicateWithFormat:@"companyId = %@", [[[self selectedCompanies] objectAtIndex:1] companiesIdentifier]];
    NSLog(@"Users: %@", [[[self userData] users] filteredArrayUsingPredicate:userPredicate1]);
4

1 に答える 1

1

できるよ:

NSPredicate *userPredicate1 = [NSPredicate predicateWithFormat:@"companyId IN %@", [[self selectedCompanies] valueForKey:@"companiesIdentifier"];
NSLog(@"Users: %@", [[[self userData] users] filteredArrayUsingPredicate:userPredicate1]);

ここで何が起こるかというと、companiesIdentifier選択したすべての企業の を取得し、それらの識別子に基づいてユーザーを照合します。

valueForKey:配列オブジェクトでは、配列内の各オブジェクトに必要なキーの値を含む配列を返します。INコレクション (配列、セットなど) を検索する述語演算子です。

于 2013-10-16T20:58:52.873 に答える