なぜこれが機能しないのかを理解しようとして、髪を引っ張ろうとしています。
私は2つのエンティティを持っています:
Quote
Customer
Aには、単に ' ' と呼ばれる とのQuote
1 対 1 の関係プロパティがあります。顧客には CoreData があります(明らかに)。すべての見積もりを検索し、に基づいて特定の顧客が関連付けられている見積もりを返そうとしています。私はこれを得ることができたすべてのチュートリアルを読んでいますが、私はクラッシュし続けます:Customer
customer
objectID
Customer
objectID
+ (void)fetchQuotesForCustomerID:(NSManagedObjectID*)objectID results:(void(^)(NSError* error, NSArray *fetchedResults))completion {
NSManagedObjectContext *context = [[QuoteGenerator sharedGenerator] managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Quote"
inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"customer.objectID == %@", objectID];
[fetchRequest setPredicate:predicate];
NSError *error;
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
if (error) {
NSLog(@"fetch error = %@", [error localizedDescription]);
completion(error, nil);
} else {
NSLog(@"fetch count = %d", fetchedObjects.count);
completion(nil, fetchedObjects);
}
}
出力エラー:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'keypath customer.objectID not found in entity <NSSQLEntity Quote id=13>'
述語の設定が間違っていますか?ドキュメントを読むと、ドット構文を使用して述語のプロパティにアクセスできることがわかります。
助けてください...