2012-07-19 28 views
2

自15天以來,我一直在使用RestKit。一旦我從遠程接收數據,我也希望能夠在本地編輯屬性並保存。在coredata和restkit中本地更新託管對象的屬性

我嘗試了幾種不同的方法,但似乎沒有工作;

user.attribute = @"new valuel"; 
[[[RKObjectManager sharedManager].objectStore managedObjectContextForCurrentThread] save:&error]; 

     if(error)  
      NSLog(@"Error saving %@", error); 

第二種方法是將值賦給實例本身並保存;

user.attribute = @"new valuel"; 
[user.managedObjectContext save:&error ]; 
NSlog(@"%@", error) 

闖闖,

[[RKObjectManager sharedManager].objectStore save:&error]; 

我似乎無法得到的指針的上下文。如何獲得指針或者可能是爲了保存對象,還是完全不可能?這些都不會保存到數據庫中,也不會引發任何錯誤。這裏有什麼問題 ?

+0

您是否調試過您在調用時看到的'NSManagedObjectContext'的值?如果指針是'nil',則它將靜默失敗。 – Dima 2012-07-19 16:36:55

+0

好的,我已經檢查,但managedObjectContext不是零...但它不會更新屬性。 – Sandeep 2012-07-19 19:16:23

+0

只要我在映射上定義了某種主鍵'issueMapping.identificationAttributes = @ [@「resourceURI」];'然後RestKit會自行合併。 – Besi 2014-04-11 15:03:22

回答

4

我有同樣的問題。我也在嘗試你的步驟,然後用一個firefox插件打開數據庫,我可以檢查數據庫沒有更新。

會讓你知道,如果我到達任何最終解決方案...

更新:

我終於得到了我的代碼工作添加方法refreshObject:mergeChanges。最後我的代碼是這樣的:

// Make changes in managedObjectYouWantToSave 
    [managedObjectYouWantToSave.managedObjectContext refreshObject:managedObjectYouWantToSave mergeChanges:YES]; 
    [managedObjectYouWantToSave.managedObjectContext save:&error]; 
+0

'refreshObject:mergeChanges:'是managedObjectContext的一個方法,而不是managedObject .. – Rizon 2013-09-17 11:42:22

相關問題