0

2つのエンティティを持つcoredataの作業モデルがあります:-顧客-請求書

顧客には「請求書」プロパティ(1対多)があり、請求書には「顧客」プロパティ(1対1)があります。Invoiceクラスの「setCustomer」メソッドをオーバーライドするまで、すべてが機能しました。私はこのコードを書きます

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

ここで、「recalculatePriceAndDiscount」は、別の顧客を選択するときに呼び出す必要がある独自のメソッドです。

このコードを使用する場合、逆の関係(customer-> invoices)はすぐには利用できません。顧客の請求書を表示するには、アプリケーションを閉じてから再度開く必要があります。

私が呼び出す必要がある他のいくつかのメソッドがありますか?

ありがとう

4

1 に答える 1

0

プロパティが「customer」(小文字の「c」)と呼ばれる場合は、それをキーとして使用する必要があります。

[self willChangeValueForKey:@"customer"];
// ... etc. 
于 2012-11-04T16:10:02.890 に答える