0

ドキュメントと資産の 2 つの関係を持つ顧客オブジェクトがあります。

アセットを作成するときに、顧客にドキュメント オブジェクトが存在するかどうかを確認する条件があります。存在しない場合は作成し、ドキュメントの顧客関係を設定します。

その直後に、アセットを作成します。ただし、EXC_BAD_ACCESS を使用して顧客をアセットに設定しようとするとクラッシュします。

このコードが機能していたのは奇妙なことですが、ここで突然クラッシュを引き起こすために何が変更されたのかわかりません。

これはコードです:

if (![customer inspectionDocument])  //check if a document exists
{
    // if it doesn't create one
    Document *document = [Document newDocument];
    document.customer = customer;
    //sets additional properties
}

// now create the asset
Asset *asset = [Asset newObject];
asset.customer = customer;   // <---- crash occurs here
//sets additional properties
4

1 に答える 1

1

ドキュメントとアセットへの顧客参照を保存するためにリレーションシップを使用していると思います。通常は、逆の関係になるはずです。反対ではなく、顧客オブジェクトにドキュメント プロパティを設定しようとしましたか?

if (![customer inspectionDocument]) {

    // if it doesn't create one
    customer.document = [Document newDocument];
}

customer.asset = [Asset newObject];
于 2013-08-21T15:02:24.763 に答える