2010-10-10 146 views
0

我試圖設置核心數據的屬性,但它不會工作。每次我打電話給方法setAveScore它會拋出錯誤[Stats setAveScore:]: unrecognized selector sent to instance 0x3364c0核心數據集屬性

任何想法是什麼問題?

召喚:

Stats *sObj = [Stats alloc]; 
NSNumber *foo = [[NSNumber alloc ]initWithInt:1]; 
sObj.aveScore = foo; 

核心數據類:

@interface Stats : NSManagedObject 
{ 
} 

@property (nonatomic, retain) NSNumber * aveScore; 
@end 

#import "Stats.h" 


@implementation Stats 
@dynamic aveScore; 
@end 

整體的ErrorMessage:

-[Stats setAveScore:]: unrecognized selector sent to instance 0x1494b0 
Exception detected while handling key input. 
-[Stats setAveScore:]: unrecognized selector sent to instance 0x1494b0 
+0

在標題中定義統計數據可解決問題。但在調用sobj.aveScore讀取時,看起來像aveScore是空的。 – lueda 2010-10-10 13:16:11

回答

1

sObj未正確初始化。要獲得核心數據管理對象,你必須把它插入到被管理對象的情況下,像這樣:

NSManagedObjectContext context = ... 
Stats *sObj = [NSEntityDescription insertNewObjectForEntityForName:@"Stats" inManagedObjectContext:context]; 

這是假設你的實體名稱爲@「統計」。

+0

這三個點是什麼意思?先看過幾次,然後嘗試沒有成功。 '+ entityForName:找不到實體名稱'Stats'的NSManagedObjectModel。正如你所想,我的實體是Stats。 – lueda 2010-10-10 13:33:10

+4

......意思是如果你不知道那裏有什麼,你需要從頭開始閱讀[核心數據編程指南](http://developer.apple.com/library/ios/#documentation /cocoa/Conceptual/CoreData/cdProgrammingGuide.html#//apple_ref/doc/uid/TP40001075)。 – 2010-10-10 13:50:59