2011-09-06 45 views
1

我有一個簡單的問題:物業沒有發現的對象類型

我有一個NSManagedObject的子類,我已經使用了一段時間,它工作得很好。 今天我添加了一個新的屬性與它相應的iVar。該屬性是一個簡單的(非原子,保留)NSString *。 和正常情況一樣,我在屬性中添加了@synthesize來生成setter和getter函數。 但是,我無法使用新定義的屬性!我不斷收到「屬性找不到類型的對象」錯誤,我的構建失敗。

下面是代碼的一些塊,將明確的事情了:

 

    //import the core data header first CoreData/CoreData.h 

    @interface Contact : NSManagedObject 

    { 
     NSString *contactID; 
     NSString *firstName; 
     NSString *myDevMod; 
    } 

    @property (nonatomic,retain) NSString *contactID; 
    @property (nonatomic,retain) NSString *firstName; 
    @property (nonatomic,retain) NSString *myDevMod; 

    @end 

和相應的.m實現:

 
    #import "Contact.h" 

    @implementation Contact 

    @synthesize contactID, firstName, myDevMod; 

和使用Contact類代碼:

 
    #import "Contact.h" //at the start 

    Contact *aContact = [[Contact alloc] init]; 
    aContact.contactID = someId; //works perfectly fine 
    aContact.firstName = someName; //works perfectly fine 
    aContact.myDevMod = @""; //THIS IS WHERE THE ERROR OCCURS!! 
    [aContact doSomethingHere]; 
    [aContact release]; 

您認爲什麼可能是錯誤?

在此先感謝您的支持。

+0

受管理對象的'contactID','firstName'和'myDevMod'屬性,或不屬於核心數據結構的單獨屬性? – jrturton

+0

你還會得到指定字符串對象的錯誤('[NSString stringWithString:@「」]')而不是靜態的'@「」'? – jrturton

+2

你是如何分類的? – TheLearner

回答

0

古怪的網站不會讓我添加註釋這樣:

評論: 聽起來很奇怪。我會嘗試的第一件事是刪除@property行和@synthesize行 - 所以getters和setter是自動創建的。另請嘗試:aContact.myDevMod = someName;看看實際是否有效 - 可能會有所提示。

+0

'@ property'和'@ synthesize'是創建getters和setters的人 - 你是這個意思嗎?如果刪除這些行,則不會有點標記調用。 – jrturton

+0

對我不能請求myDevMod或任何其他財產,如果我評論它! 我懷疑與CoreData有關的東西,但我還不確定... – static0886

0

昨晚我的確有同樣的問題。我花了大約5個小時來解決這個問題。我的第一次嘗試是再次用菜單編輯器 - >創建NSManagedObject子類創建模型類...

但是這並沒有幫助。即使我事先刪除了這些類,Xcode也不能識別這些屬性。我也刪除了該模型,並用相同的名稱重建它。並再次創建NSManagedObject子類。沒有幫助。然後我再次刪除模型和MOS,並從頭開始構建它!但用不同的名字!再次花了我很長時間來改變我的代碼,但之後似乎是正常的。現在,我可以添加,更改和刪除模型中的屬性以及屬性NSManagedObject子類和Xcode再次識別它們。

但男孩,它幾乎驅使我堅果!!!我仍然不知道發生了什麼!

0

我的經驗是,它不是需要重新創建的模型或對象。 大多數時候,你可以重新創建你的工作文件的時間。讓每什麼.H .M 文件的新的NSView和複製信息到新的文件,它會奏效。

相關問題