核心数据 - 为一个关系实现自定义

时间:2011-10-27 09:41:42

标签: objective-c core-data

我不确定这是否是一个愚蠢的问题:

我有一个托管对象A,托管对象A与表B有多对一的关系。

通过执行类似

的操作,我将关系A设置为B.
 Aobject.Bobject=acopyOfB;

哪个好。

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

所以我想填补空白:

    -(void) setBobject:(Bobject)theValue{


  'the gap'

  }

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

1 个答案:

答案 0 :(得分: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