我的Core Data應用程序中有一個奇怪的問題。核心數據保存問題:無法更新可變形屬性(NSArray)
我在我的應用程序中有三個實體,但今天我發現其中一個問題。我的問題實體叫做Invoice
,它有很多屬性,包括Products
。它編碼NSDictionaries的NSArray(通過默認的NSValueTransformer)。
一切工作正常 - 我創建我的發票,其客戶端,其產品等一切正常。
但是,當我從列表中選擇我的發票,然後嘗試編輯其產品並點擊「保存」按鈕時,我的保存工作,直到我的應用程序終止。
問題是隻有我的products
數組 - 其餘(如付款日期,客戶端等)保存。
我在做什麼
我通過我的Invoice
對象通過
NSManagedObject *inv = [self.fetchedResultsController objectAtIndexPath:indexPath];
invoiceEditor.invoice = inv;
,救救我的數據(在我InvoiceEditor
VC):
[self.invoice setValue:client forKey:@"Client"] // NSDictionary;
[self.invoice setValue:products forKey:@"Products"] // NSArray of NSDictionaries;
[self.invoice setValue:pmDate forKey:@"PaymentDate"] // NSDate;
// other attributes
NSManagedObjectContext *context = self.invoice.managedObjectContext;
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
萬物節省直到被終止:客戶,公關產品,日期。但是隻有產品在終止後「重新設置」。
有人嗎?
說明:你的意思是「產品是'重新設置'」?你的意思是產品屬性沒有保存?你的意思是它恢復到以前的值?換句話說,重啓後'***產品'屬性看到的是什麼,以及你實際上看到了什麼? – TechZen
任何特定的原因你沒有使用一個實體和關係,而不是NSArray中的一堆NSDictionary對象?這是一個非常麻煩和(很可能)很慢的設置。 – TechZen
1.我的意思是產品屬性已保存,但在我的應用程序終止後,它返回到先前的值。 2.我不使用關係,因爲我始終需要產品,即使用戶已經刪除了它們。我有一個名爲「產品」的實體,但在我的「發票」中,我正在存儲其副本。 – akashivskyy