2015-12-22 188 views
0

我試圖從託管對象上下文中檢索一個對象,並在將它備份到雲之後編輯一個或兩個值。特別是,我想保存由雲服務器提供的ID。ObjectForID返回什麼類型的對象

要獲取對象,我試圖使用其managedObjectID檢索它。

我曾嘗試:

Contacts *object = [_managedObjectContext objectWithID:_moID]; 

Contacts *object = [self.managedObjectContext objectRegisteredForID:_moID]; 

,其中模具中是managedObject ID。

然後,我

object.cid = @99; //ie I set it equal to some number 

在這兩種情況下跟進,雖然聯繫是一個NSManagedObject類,它拋出一個黃色的警告:

'Incompatible point types initializing contacts with an expression of type NSManagedObject'.

如果與其說這Contacts *object,我打電話它NSManagedObject *object,它不再拋出警告,但不會允許我說object.cid,因爲它不再知道一個cid是什麼。在這種情況下,它會拋出紅色錯誤:

Property cid not found on object of type NSManagedObject.

任何人都可以提出適當的對象類型。在此先感謝您的任何建議。

回答

2

通過查看方法定義,您將看到返回的實例類型僅爲NSManagedObject *,如警告所述。你需要做的就是投正確類型:

Contacts *object = (Contacts *)[_managedObjectContext objectWithID:_moID]; 

Contacts *object = (Contacts *)[self.managedObjectContext objectRegisteredForID:_moID]; 

注意,您Contacts假設是的NSManagedObject一個子類。

相關問題