Pro*_*ody 2 iphone cocoa-touch core-data objective-c
我有一个NSManagedObject子类,由XCode模型接口创建.
该类有一些NSString和NSNumber成员,以及一个NSDate成员.
当我尝试设置NSDate成员时,我得到以下异常:
2009-10-12 21:53:32.228 xxx[2435:20b] Failed to call designated initializer on NSManagedObject class 'Item'
2009-10-12 21:53:32.228 xxx[2435:20b] *** -[Item setDate:]: unrecognized selector sent to instance 0x3f7ed30
2009-10-12 21:53:32.229 xxx[2435:20b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[Item setDate:]: unrecognized selector sent to instance 0x3f7ed30'
date参数和其他参数一样,除了不是a
@property (nonatomic, retain) NS{String,Number}* propname;
Run Code Online (Sandbox Code Playgroud)
它是
@property (nonatomic, retain) NSDate *date;
Run Code Online (Sandbox Code Playgroud)
顺便说一句,Item我正在分配的实例只是一个常规的[[Item alloc] init],没有相关的上下文或任何东西.
首先我认为我的NSDate*有问题,然后我尝试分配它[NSDate日期],甚至是零.它仍然崩溃.
有任何想法吗?
你不能在NSManagedObject没有关联的情况下实例化一个子类NSManagedObjectContext(你可以如你所示,但结果几乎肯定不是你想要的).
日志的第一行提示:
2009-10-12 21:53:32.228 xxx[2435:20b] Failed to call designated initializer on NSManagedObject class 'Item'
Run Code Online (Sandbox Code Playgroud)
所有Objective-C类(按照惯例)都有一个指定的初始化程序,它是必须被显式或通过其他便利初始化程序调用的初始化方法.在的情况下NSManagedObject,这是-[NSManagedObject initWithEntity:insertIntoManagedObjectContext:].未能导致指定的初始化程序导致未定义且可能不正确的行为,因为不保证实例已正确初始化.我猜测NSManagedObject初始化器设置机制以支持@synthesize实体属性的'd属性访问.如果没有这种机制,实例可能认为它不能响应@synthesize'd调用而你的调用setData:会导致选择器找不到错误.
| 归档时间: |
|
| 查看次数: |
5966 次 |
| 最近记录: |