2013-08-21 34 views
0

我有一個具有兩個關係,一個文檔和一個資產的客戶對象。第二次設置核心數據對象導致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 
+0

您確定您正在創建'客戶'對象創建時使用同一個'NSManagedObjectContext'創建的'Document'和'Asset'對象嗎?這可能是你的問題。 –

回答

1

我假設你正在使用一個關係來存儲用戶參考文檔和資產。通常情況下,你應該有一個反向關係。你有沒有嘗試設置客戶對象而不是相反的文檔屬性?

if (![customer inspectionDocument]) { 

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

customer.asset = [Asset newObject]; 
+0

客戶對文件和客戶資產的關係是一對多關係。有沒有簡單的方法可以添加到客戶文檔和資產的NSSet中? – JMD

+0

嗯,我創建了一個可變集合,將新對象添加到該集合中,然後將該屬性設置回客戶對象,並且我似乎不再發生崩潰。所以這似乎是修復 – JMD

相關問題