coredata覆盖关系的设定值

时间:2012-11-04 15:48:54

标签: core-data

我在coredata中有两个实体的工作模型: - 客户 - 发票

客户拥有“发票”属性(1到多个),发票具有“客户”属性(1到1)。 一切正常,直到我覆盖Invoice类的“setCustomer”方法。 我写这段代码

-(void)setCustomer:(Customer *)customer {
    [self willChangeValueForKey:@"Customer"];
    [self setPrimitiveValue:customer forKey:@"Customer"];
    [self didChangeValueForKey:@"Customer"];
    [self recalulatePriceAndDiscounts];
}

其中“recalculatePriceAndDiscount”是我自己选择不同客户时需要调用的方法。

当我使用此代码时,反向关系(客户 - >发票)无法立即使用,我需要关闭并重新打开我的应用程序以查看客户的发票。

还有其他方法需要调用吗?

感谢

1 个答案:

答案 0 :(得分:0)

如果该属性被称为“customer”(带有小写“c”),那么您必须将其用作密钥,例如

[self willChangeValueForKey:@"customer"];
// ... etc.