通过CoreDataGeneratedAccessors向多个关系添加对象后,NSSet为空

时间:2011-03-25 13:03:27

标签: core-data relationship

我有两个核心数据实体:ParentChild。家长与称为Child的{​​{1}}有很多关系。来自children的反向关系。所以父母有Child.parentCoreDataGeneratedAccessors- (void)addChildrenObject:(Child *)value;

问题:在我使用其中一个访问者添加Child并保存managedObjectContext - (void)addChildren:(NSSet *)value;为空之后。同时,每个添加parent.children parent的{​​{1}}属性指向ChildParent的正确实例,这样的子句(谓词为NSFetchedResultsController)就可以了。

怎么会这样?只是不知道如何调试这种奇怪的CoreData行为。

2 个答案:

答案 0 :(得分:0)

解决。该集的属性在.m文件中由@synthesize而不是@dynamic合成。我知道这是一个非常愚蠢的错字,但我想知道为什么XCode甚至没有发出警告!静态分析仪也没有说过它!

答案 1 :(得分:0)

定义如下属性时会发生同样的情况:

@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;