私はアドレス帳の連絡先辞書の配列を持っています。各名前の辞書には、名前の文字列と電子メール アドレスの配列が含まれています。連絡先の配列をログに記録したときの NSLog 出力のスニペットを次に示します。
{
emails = (
"something@yahoo.com"
);
name = "Some Name";
},
{
emails = (
"john.public@gmail.com",
"john@public.name"
);
name = "John Q. Public";
},
[etc.]
述語を使用してこれらの辞書を電子メール アドレスで検索し、検索用語に一致する電子メール アドレスが少なくとも 1 つ含まれているすべてのエントリを返します。
これまでのところ、次のように CONTAINS を使用して、この質問で説明されている方法を試しました。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"emails CONTAINS[c] %@", searchString];
しかし、どの検索でも空の配列が返されました。代わりに名前フィールドを検索すると、うまくいきます。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name CONTAINS[c] %@", searchString];
だから私はそれが特に配列を検索していると確信しています。アイデア?