第二次设置核心数据对象会导致EXC_BAD_ACCESS

时间:2013-08-21 14:57:46

标签: ios objective-c core-data exc-bad-access

我有一个客户对象,有两个关系,一个文档和一个资产。

当我创建资产时,我有一个条件,我检查客户中是否存在文档对象。如果它不存在,我创建一个并设置文档的客户关系。

在那之后,我创建了资产。但是,在尝试使用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

1 个答案:

答案 0 :(得分:1)

我假设您正在使用关系将客户引用存储到您的文档和资产中。通常情况下,您应该有反向关系。您是否尝试在客户对象上设置文档属性而不是相反?

if (![customer inspectionDocument]) {

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

customer.asset = [Asset newObject];