1

當我在一個實體更新瞬態屬性(我想其他屬性)用下面的代碼NSFetchedResultsController不更新更新NSManagedObjects

[passedObject setValue:distanceNumber forKey:@"distance"]; 

NSFetchedResultsController刪除從提取結果的對象。

我想我必須做[fetchedresultscontroller performFetch:&error]再次做一次抓取,但沒有任何反應,對象不會回來抓取結果。

什麼我失蹤?如何在運行時更新對象,而不會從NSFetchResultController的提取中刪除?

謝謝

+0

說出你的模型。你如何檢索* passedObject *?謝謝。 – 2012-02-28 13:46:18

+0

有什麼想法?我有sae問題。 'NSFetchedResultsController'調用DELETE而不是UPDATE。你找到答案了嗎? – 2015-09-03 16:58:38

回答

1

獲取的標準是什麼?你使用謂詞嗎?很可能,您對實體所做的更改使其與匹配謂詞不匹配。當您進行更改並保存時,這會導致當前獲取的結果控制器被託管對象上下文通知上下文已更改。獲取的結果控制器然後檢查所有更改並採取適當的操作。它將刪除不再與原始提取條件相匹配的對象。

如果您顯示進行原始提取的代碼,則可能有人可以準確地告訴您問題是什麼。

1

BillKast,

瞬態屬性很特殊,不參與提取請求。您可以將它們視爲始終在磁盤上爲零。

我會做一個更簡單的實驗,只使用提取請求而不是提取的結果控制器。

此外,分離您的應用程序的版本,並將屬性的類型更改爲永久。我懷疑你會看到不同的行爲。

由於您沒有列出任何代碼,恐怕我沒有其他建議。瞬態屬性是你可能的問題。

Andrew

1

謝謝你們倆的幫助!

我在想,對於瞬態屬性,你不需要保存上下文。 錯誤。 這是問題所在,我只需要保存上下文。

非常感謝。

相關問題