cocoa -[Person copyWithZone:]: 无法识别的选择器发送到实例

Posted

技术标签:

【中文标题】cocoa -[Person copyWithZone:]: 无法识别的选择器发送到实例【英文标题】:cocoa -[Person copyWithZone:]: unrecognized selector sent to instance 【发布时间】:2014-09-20 16:40:21 【问题描述】:

我正在按照Cocoa programming for Mac OS X 进行一些可可编程,我被困在第 8 章(NSArrayController)中,我正在遵循那本书中定义的指南,但我不知道为什么该应用程序总是引发unrecognized selector sent to instance 错误。

我的代码在这里RaiseMan,如果您有任何建议,非常感谢。

【问题讨论】:

【参考方案1】:

我自己修好了。 NSArrayControlleradd方法的行为是复制一个对象,而不是持有对象的pointer,我遇到的是我在Person类中没有实现NSCoping协议,我修好了像这样:

Person.h中声明NSCoping

@interface Person : NSObject <NSCopying> 
    NSString *personName;
    float expectedRaise;

并在 Person.m 中实现它:

-(id)copyWithZone:(NSZone *)zone

    return self;

【讨论】:

以上是关于cocoa -[Person copyWithZone:]: 无法识别的选择器发送到实例的主要内容,如果未能解决你的问题,请参考以下文章

静态 cocoa/cocoa-touch 库应该基于啥样的 SDK?

Cocoa设计模式(iOS常用设计模式) Cocoa Design Patterns

BEESEXY“CoCoa·M可沐巧”(Cocoa melody) 系列上市

iOS:Cocoa编码规范 -[译]Coding Guidelines for Cocoa

合理的 Cocoa 和 Cocoa Touch 默认值

在 Cocoa/Cocoa Touch 中监控目录