0

NSSet3 つの異なるタイプのオブジェクト ( FacebookGroupIndividualおよびNSMutableDictionary)を含むがあります。

FacebookGroupIndividualサブクラスであり、NSManagedObject

ここで、キーに一致するオブジェクトを見つけたいcontactInfoので、次のようにします。

NSMutableDictionary *contactDict = [[self.contacts filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"contactInfo == %@", contactInfo]] anyObject];

if (contactDict) // the object is found

しかし、FacebookGroups にはキーがないcontactInfoため、例外がスローされます。代わりに、例外がスローさcontactDictれることを望んでいましたnil

NSSet例外がスローされることなく、さまざまなオブジェクトを検索するにはどうすればよいですか?

*キャッチされない例外「NSUnknownKeyException」が原因でアプリを終了します。理由:「[ valueForUndefinedKey:]: エンティティ FacebookGroup は、キー「contactInfo」のキー値コーディングに準拠していません。

4

2 に答える 2

0

を使用して述語を作成する場合+ (NSPredicate *)predicateWithBlock:(BOOL (^)(id evaluatedObject, NSDictionary *bindings))blockは、ブロックでチェックを実行しevaluatedObjectて、 にキーがあることを確認してから、適切なチェックを実行できます。

于 2013-06-24T11:59:25.843 に答える