0

私はこのような辞書の配列を持っています:

clients (
        {
        country = canada;
        city = vancouver;
    },
{
        country = Mexico;
        city = Mexico;
    },
{
        country = UK;
        city = London;
    },
{
        country = USA;
        city = NewYork;
    },
}

NSPredicate を使用して米国のクライアントを次のように検索すると、次のようになります。

NSPredicate *usaPredicte = [NSPredicate predicateWithFormat:@"SELF contains %@", @"USA"];
self.usa = [listOfClients filteredArrayUsingPredicate:usaPredicte];

正常に動作しますが、何らかの理由で予測の結果が null の場合、たとえばこの場合:

NSPredicate *peruPredicte = [NSPredicate predicateWithFormat:@"SELF contains %@", @"Peru"];
self.peru = [listOfClients filteredArrayUsingPredicate:peruPredicte];

次のエラーが表示されます。

-[__NSCFDictionary filteredArrayUsingPredicate:]: unrecognized selector sent to instance 0xdcb6e0

述語が空または null の場合にこのエラーが発生しない理由または方法を知っている人はいますか?

私は本当にあなたの助けに感謝します

4

1 に答える 1

0

これを試して

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(country ==  %@)", @"USA"];

NSArray *filteredArray = [listOfClients filteredArrayUsingPredicate:predicate];

filterArray のカウントが常に 1 であると仮定します。

if (filteredArray.count ) 
     self.usa = [[filteredArray objectAtIndex: 0] objectForKey: @"country"];
于 2013-10-16T19:48:26.143 に答える