2011-10-27 80 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