我在我的應用程序中使用多上下文核心數據方案。我有一個類的網絡請求方法- (void)getCurrencysWithParentContext:(NSManagedObjectContext*)parentContext;
在這裏我創建一個操作來解析xml-answer。此操作具有自己的NSPrivateQueueConcurrencyType
上下文。在該操作結束時,我打電話插入的管理對象屬性爲零
if ([self.managedObjectContext save:&error])
{
__weak typeof(self) weakSelf = self;
[self.parentContext performBlock:^{
NSError *error;
if (![weakSelf.parentContext save:&error])
{
NSLog(@"Parent context context save error %@", error);
}
}];
}
else
NSLog(@"Child context save error %@", error);
與不 零
self.managedObjectContext.insertedObjects
返回實體屬性:
(實體:幣種; ID: 0x7a7b8cb0 ; 數據:{ 則charCode = RUR; 標稱= 1; orderNo = 0; 率=( ); sbrfID =無; 符號= 「\ U20bd」;
個
但weakSelf.parentContext.insertedObjects
回報
(單位:元幣種; id:0x7a7b8cb0 ; data:{ charCode = nil; nominal = 0; orderNo = 0; rates =( ); sbrfID = nil; sign = nil;對於相同的對象ID。
爲什麼?我做什麼不正確?如何正確地將更改推送到父上下文?
我擔心,因爲保存在父上下文計劃與一個塊,你在'保存'之前檢查它發生......? – stevesliva 2014-12-14 05:32:45