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
。父对象与名为
子对象的
子对象有很多关系。与is
Child.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;

能否显示用于将子对象添加到父对象的代码?