2012-06-18 35 views
0

我一直在努力Core Data 感嘆所以我決定去工作這個this Apple Core Data tutorial。我在本教程中的要點是要求我建立迄今爲止已經放在一起的項目。所以我在本教程中目前是right here。當我建立這個項目我收到以下錯誤:使用ARC構建Apple Core Data Tutorial的錯誤

Type of property 'managedObjectContext' ('NSManagedObjectContext *') does not match type of ivar 'managedObjectContext' ('MSManagedObject *__strong')

RootViewController.m

Ivar is declared here

這就是我在錯誤的窗口我得到。

這裏是什麼我的文件看起來像,

RootViewController.h http://pastie.org/4111206

RootViewController.m http://pastie.org/4111216

AppDelegate.h http://pastie.org/4111222

AppDelegate.m http://pastie.org/4111227

回答

1

你伊娃被錯誤地聲明。在RootViewController.h,

NSManagedObject *managedObjectContext; 

應該寫,因爲錯誤抱怨,

NSManagedObjectContext *managedObjectContext; 

而實際上,隨着現代運行時,相當長一段時間它已經沒有必要(通常​​虐待建議)明確聲明支持ivars的@synthesize'd屬性。所以你可以完全刪除ivar行,讓編譯器爲你製作ivar。

+0

感謝您指出了我。當我回到家時,我會給你說的一個嘗試,然後將問題標記爲已回答。感謝寫得很好的回覆。 – Chris

+0

@Chris我的榮幸,讓我知道你是否遇到過任何問題。 (這聽起來像是相當古老的示例代碼,所以如果還有其他問題在等待,我不會感到驚訝。) –

0

錯誤消息已經解釋它。 你有一個類NSManagedObject的伊娃managedObjectContext(這是你的錯誤)。

編譯器無法合成屬性managedObjectContext,因爲您有一個同名的伊維爾,但具有不同的類。

重命名伊娃和改變合成路線:

@synthesize managedObjectContext = _managedObjectContext;