2010-11-03 4 views
0

В моей 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

О, хорошо .. спасибо! –