2012-02-23 38 views
4

在我的NSManagedObject子類中,我有一個NSString ivar,它分裂成一個NSSet實體。我希望能夠設置字符串,並在調用保存時進行拆分,但是,只有設置字符串不會觸發髒標誌或需要保存。有沒有辦法將NSManagedObject標記爲髒?

+0

你想出了這個問題的答案嗎? – SAHM 2016-02-11 03:25:23

回答

0

我假設你的意思是「屬性」而不是「伊娃」。你有一個字符串被分割成一個集合然後保存集合的方案也許是有爭議的,但我想這不是問題。

爲什麼你需要將管理對象標記爲「髒」?這實際上沒有必要。只需保存它,骯髒或不!

我不知道你是如何檢查被管理對象的「骯髒」,但我想你想要在某個點觸發保存。此時,您可以檢查自己的BOOL「dirtyFlag」,您可以根據需要設置它並保持可用於檢查。

明確地做這些事情總是比較好的。您的代碼將變得更具可讀性和透明性。

+0

不,它是我的子類中的一個ivar,不在MOC文件中。它根本不接觸數據庫。我想在-willSave中分割字符串。 – jarjar 2012-02-24 19:05:08

+0

您是否保存將從字符串中分離出來的部件? – Mundi 2012-02-24 21:01:14

+13

下面是一個你希望標記對象髒的情況:以便它在隨後的NSManagedObjectContextObjectsDidChangeNotification中顯示爲更新的對象。然後,它是候選人的任何NSFetchedResultsControllers將注意到並重新評估它。 – rgeorge 2012-04-17 22:39:55

0

您可以實施+ (BOOL)contextShouldIgnoreUnmodeledPropertyChangesNSManagedObject子類,並返回NO而不是默認值(YES)。

然後這應該導致NSManagedObjectContext被通知更改屬性,即使它們不是由數據庫中的實際列表示。

相關問題