2011-07-04 130 views
0

我是Core Data的新成員,還有一些我還不明白的問題。核心數據和@dynamic

我有一個名爲GCS(一個用於核心數據NSManagedObject的子類)實體:

@implementation GCS 

@dynamic eye; 
@dynamic ... 
@dynamic ... 

它正常工作與核心數據當我這樣做:

GCS *failedBankDetails = [NSEntityDescription 
             insertNewObjectForEntityForName:@"GCS" 
             inManagedObjectContext:context]; 

failedBankDetails.eye = [NSNumber numberWithInt:12]; 

但隨後,在另一我有一個屬性的GCS類型:

@interface ModelManager : NSObject 
{ 
    GCS *tempGCS; 
} 

@property (nonatomic, retain) GCS *tempGCS; 
... 

在ModelManager的一個方法中,我試過這個:

tempGCS.eye = [NSNumber numberWithInt:0]; 

但引發的異常: 未能呼籲NSManagedObject類的GCS' 指定初始化 - [GCS setEye:]:無法識別的選擇發送到實例0x4d32ac0

爲什麼不能我用點號現在?我認爲@dynamic是線索,但我不應該改變它,因爲我需要將它用於Core Data,對吧?

請幫助我,對不起我的英語。 謝謝!

回答

2

點符號與它無關,如果您調用[tempGCS setEye:...],則會出現相同的錯誤。錯誤在於你在創建tempGCS中的對象時忽略致電initWithEntity:insertIntoManagedObjectContext:;特別是[[GCS alloc] init]不是工作正常。

+0

我建議在你自己的自定義初始化器中包含對initWithEnitity:insertIntoManagedObjectContext的調用,以保存你每次都必須輸入的內容。像initWithEye:等等 – Jonathan