2011-07-15 28 views
0

我有一個名爲CD_CoffeeShop的核心數據NSManagedObject。當我分配一個變量NSManagedObject的問題

CD_CoffeeShop *temp_CS = [ CD_CoffeeShop new] 

,並嘗試將值傳遞給它,

[temp_CS setCoffeeShopId:[NSNumber numberWithInt:coffeeShop.Id]]; 

(temp_CS的變量coffeeShopId是一個NSNumber的)

我得到一個錯誤,指出:

由於未捕獲異常而終止應用程序 'NSInvalidArgumentException',原因:' - [CD_CoffeeShop setCoffeeShopId:]:無法識別的選擇器發送到實例0x6b34040'

它是什麼?

+0

你是否在.h文件中聲明瞭'setCoffeeShopId'? – MByD

+0

它們被聲明爲動態的,但如果我嘗試手動將其設置爲temp_CS.coffeeShopId = [NSNumber numberWithInt:coffeeShop.Id]];它不會工作,它顯示我同樣的錯誤 – Alex

+0

是'coffeeShopId'綜合? – MByD

回答

3

你看過Core Data Programming guide嗎?你不用NSObject方法實例化核心數據對象。如果它們已經存在,或者您使用NSEntityDescriptioninsert a new object into the context,則可以通過獲取請求獲取它們。

絕對不要使用new

+0

a知道這一點,但認爲有一個「捷徑」..謝謝! – Alex

+0

順便說一句,我可以添加正確的初始化後的對象到一個NSMutableArray,以便我可以稍後將它們添加到數據庫? – Alex

+1

@Badescu Alexandru:這一切都爲你處理。如果您以正確的方式創建新的託管對象併爲其屬性分配一些值,那麼當您稍後保存NSManagedObjectContext時,所有更改將自動發送到持久性存儲。 – JeremyP

相關問題