2010-10-10 142 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