Core data 通过CoreDataGeneratedAccessor向多个关系添加对象后';s NSSet为空
我有两个核心数据实体:Core data 通过CoreDataGeneratedAccessor向多个关系添加对象后';s NSSet为空,core-data,relationship,Core Data,Relationship,我有两个核心数据实体:Parent和Child。父对象与名为子对象的子对象有很多关系。与isChild.parent的反向关系。因此父对象具有CoreDataGeneratedAccessors:-(void)addChildrenObject:(Child*)值和-(void)addChildren:(NSSet*)值 问题:在我使用这些访问器之一添加子项并保存managedObjectContext父项后。子项为空。同时,每个添加的子对象的父对象属性指向父对象的适当实例,并且NSFetche
Parent
和Child
。父对象与名为子对象的子对象有很多关系。与isChild.parent的反向关系。因此父对象具有CoreDataGeneratedAccessors
:-(void)addChildrenObject:(Child*)值
和-(void)addChildren:(NSSet*)值代码>
问题:在我使用这些访问器之一添加子项并保存managedObjectContext父项后。子项
为空。同时,每个添加的子对象的父对象
属性
指向父对象
的适当实例,并且NSFetchedResultsController
很好地获取这些子对象(谓词是父对象=%@,
)
怎么会这样?只是不知道如何调试这种奇怪的CoreData行为。解决了。不知何故,该集合的属性是由.m文件中的@synthesis
而不是@dynamic
合成的。我知道这是一个非常愚蠢的打字错误,但我想知道为什么XCode甚至没有生成关于这一点的警告!静态分析器也没说什么 定义如下属性时也会发生同样的情况:
@interface Project : BaseModel {
Workspace *workspace;
NSString *name;
}
@property (nonatomic, retain) Workspace *workspace;
@property (nonatomic, retain) NSString *name;
@interface Project : BaseModel {}
@property (nonatomic, retain) Workspace *workspace;
@property (nonatomic, retain) NSString *name;
正确的界面应如下所示:
@interface Project : BaseModel {
Workspace *workspace;
NSString *name;
}
@property (nonatomic, retain) Workspace *workspace;
@property (nonatomic, retain) NSString *name;
@interface Project : BaseModel {}
@property (nonatomic, retain) Workspace *workspace;
@property (nonatomic, retain) NSString *name;
能否显示用于将子对象添加到父对象的代码?