“无法识别的选择器”-将 AppDelegate 的 NSManagedObjectContext 导入其他类 (OSX) 时出错
Posted
技术标签:
【中文标题】“无法识别的选择器”-将 AppDelegate 的 NSManagedObjectContext 导入其他类 (OSX) 时出错【英文标题】:"Unrecognized Selector"-Error when importing NSManagedObjectContext of AppDelegate into other classes (OSX) 【发布时间】:2013-01-23 18:38:46 【问题描述】:在我的应用程序中,我想在另一个类 (myClass) 中使用由 AppDelegate 创建的 ManagedObjectContext。为此,我首先在 MyClass 中创建了一个实例变量来存储 objectContext:
NSManagedObjectContext *managedObjectContext;
我还用@property 定义了getter 和setter。 为了设置实例变量,我在初始化后为其分配了 AppDelegate 的 managedObject 上下文:
-(void)applicationDidFinishLaunching:(NSNotification *)aNotification
myClass *myClassInstance = [[myClass alloc]init];
[myClassInstance setManagedObjectContext:[self managedObjectContext]];
现在,当我运行应用程序时,我得到以下信息:
-[NSManagedObjectContext copyWithZone:]: unrecognized selector sent to instance 0x100634c90
说实话,我真的不知道该怎么做。有人可以帮我吗?
【问题讨论】:
【参考方案1】:您似乎已经使用“copy”属性为托管对象上下文声明了@property。您应该将其声明为
@property(strong, nonatomic) NSManagedObjectContext *managedObjectContext;
无法复制托管对象上下文,但它也没有任何意义。你想在你的类中使用相同的上下文,而不是一个(独立的)副本。
【讨论】:
那是个错误。非常感谢!以上是关于“无法识别的选择器”-将 AppDelegate 的 NSManagedObjectContext 导入其他类 (OSX) 时出错的主要内容,如果未能解决你的问题,请参考以下文章
AppDelegate setFullscreen:无法识别的选择器发送到实例
尝试获取 AppDelegate 时出现“无法识别的选择器发送到实例”错误
[AppDelegate managedObjectContext]:发送到实例的无法识别的选择器
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[_.AppDelegate add:]:无法识别的选择器