2010-11-03 66 views
0

在我的Objective-C的项目,我有一个奇怪的,可以说,功能我有一个类,像这样:静态的Objective-C类是否必须继承NSObject?

#import <Foundation/Foundation.h> 

@interface Convert /* : NSObject */ // <--- is that necessary? 

+(int) toInt:(id) obj; 

@end 

@implementation Convert 

+(int) toInt:(id) obj 
{ 
    return [obj intValue]; 
} 

@end 

会发生什么事,当我通过代码它工作正常步骤,但我得到在控制台中神秘的错误(即使代码是完全没问题,按预期工作):

2010-11-03 09:35:49.422 Tests[14066:5f03] *** NSInvocation: warning: object 0x9e424 of class 'Convert' does not implement methodSignatureForSelector: -- trouble ahead 
2010-11-03 09:35:49.422 Tests[14066:5f03] *** NSInvocation: warning: object 0x9e424 of class 'Convert' does not implement doesNotRecognizeSelector: -- abort 

然而,即使它说中止,该代码仍然有效。但是,当我不通过这些代码行来运行它时,它会中止。发生了什么,为什么?

回答

1

简单的答案是“是”。

或者更具体地说,运行时期望对象符合NSObject协议,最简单的方法是确保您的对象继承自NSObject类。

+0

噢好的..谢谢! – 2010-11-03 14:27:29