2011-10-27 61 views
0

我不知道,如果这是一个愚蠢的问题:核心数据 - 实现自定义的一个关系

我有一个托管对象和托管对象A与表B多对一关系

我通过做类似

Aobject.Bobject=acopyOfB; 

这样设置关系A到B这是好的。

我想为该关系编写一个自定义setter。这样,我可以根据B设置的值在A中设置一些只读属性。

所以我要填补缺口:

-(void) setBobject:(Bobject)theValue{ 


    'the gap' 

    } 

我很高兴能为我设置自定义值,但到处都找不到正确的语法设定核心数据中的关系。

回答

0

你需要做这样的事情

- (void) setBObject:(BObject*)theValue { 
    [self willChangeValueForKey:@"bObject"]; 
    [self setPrimitiveBObject:theValue]; 
    [self didChangeValueForKey:@"bObject"]; 

    // Do whatever else you need to do here 
} 

为了避免编译器警告,你可以声明@implementation指令之前以下(但在.m文件):

@interface MyManagedObjectSubClass (PrimitiveAccessors) 

@property (nonatomic, retain) BObject* primitiveBObject; 

@end