コードに何か問題がありますか?この述語を使用して何もフェッチできません。述語をコメントアウトすると、エンティティ「BankDetail」からすべてのオブジェクトをフェッチできます。ですから、問題はこの2行にあると思います。
// self.bankInfo.name is set in prepareForSegue in first view controller
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"info.name = %@",self.bankInfo.name];
[request setPredicate:predicate];
私のモデルには、1対1の関係にある2つのエンティティが含まれています
BankInfo.h
@class BankDetail;
@interface BankInfo : NSManagedObject
@property (nonatomic, retain) NSString * city;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSString * state;
@property (nonatomic, retain) BankDetail * detail;
@end
BankDetail.h
@class BankInfo;
@interface BankDetail : NSManagedObject
@property (nonatomic, retain) NSString * closeDate;
@property (nonatomic, retain) NSString * updateDate;
@property (nonatomic, retain) NSString * zip;
@property (nonatomic, retain) NSString * acquiringInstitution;
@property (nonatomic, retain) BankInfo * info;
@end
編集:
詳細を提供するには:
self.bankInfo.name
間違いなく設定されています。述語の行の直前でNSLogします。そして私はこれを
viewDidLoad
:NSEntityDescription *entity = [NSEntityDescription entityForName:@"BankDetail" inManagedObjectContext:context]; NSLog(@"[entity description] is %@",[entity description]);
コンソールでこれを取得します。
info = "(<NSRelationshipDescription: 0x6d3eb30>), name info, isOptional 1, isTransient 0, entity BankDetail, renamingIdentifier info, validation predicates (\n), warnings (\n), versionHashModifier (null)\n userInfo {\n}, destination entity BankInfo, inverseRelationship detail, minCount 1, maxCount 1, isOrdered 0, deleteRule 2";
EDIT2:述語に問題はない ことがわかりました。バグは他の場所での不注意な間違いによって引き起こされます(受け入れられた答えを参照してください、それは名前の変更についてです)。述語について質問がある場合は、この投稿を無視してください。