我昨天刚开始使用 CoreData,我快要疯了:( 我创建了一个使用 CoreData 的项目(勾选了框 - 使用 CoreData)。创建了实体,然后为所有实体创建了 NSManagedObject 类(我想他们创建了实体的“setter”和“getter”方法)。
现在,我在 AppDeletegate 中 #imported 所有这些类,并在我的 applicationDidFinishLaunching 方法中编写了以下内容:
(订阅是应用程序中的实体之一)
NSManagedObjectContext *context = [self managedObjectContext];
Subscriptions *sbs = (Subscriptions *)[NSEntityDescription insertNewObjectForEntityForName:@"Subscriptions" inManagedObjectContext:context];
[sbs setTitle:@"OK"];
[sbs setType:@"Tag"];
[sbs setCode:@"cars"];
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Couldn't create the subscription");
}
当我运行这个时,我收到此错误
[NSManagedObject setTitle:]:无法识别的选择器发送到实例 0x6160550
我不知道为什么会发生这种情况。请帮忙!!!
预先感谢大家!
添加订阅标题
订阅.h
@interface订阅:NSManagedObject {
}
@property(非原子,保留)NSString * 类型;
@property(非原子,保留) NSDecimalNumber * 读取;
@property(非原子,保留)NSString *标题;
@property(非原子,保留)NSString *代码;
@property(非原子,保留) NSDecimalNumber * 新;
@end
我没有改变任何东西。就像 Xcode 创建它一样。
只是提醒一下,不要使用大写的变量名,它可能会影响 getter 和 setter 无法正常工作。
如果您从数据模型生成 NSManagedObject 子类,一切都应该顺利,尽管它是 @dynamic,setter 是由 coredata 实现的,并且因为它们已经实现,所以您不应该将其更改为综合。
至少对我来说,在我将@dynamic更改为@synthesize后,coredata返回空对象。
并且不要忘记在数据模型中设置类名:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)