2010-11-03 2 views
0

Dans mon projet, objectif-c, j'ai un bizarre, laisse dire fonction J'ai une classe, comme ceci:Est-ce que les classes d'objectifs-c statiques doivent sous-classer 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 

Ce qui se passe est, quand je fais un pas dans le code Il fonctionne très bien, mais Je reçois une erreur cryptique dans la console (même si le code est tout à fait bien, fonctionne comme prévu):

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 

Pourtant, même quand il dit abandonner, le code fonctionne toujours. Cependant, quand je l'exécute sans passer par ces lignes de code, il avorte. Qu'est-ce qui se passe et pourquoi?

Répondre

1

La réponse simple est "oui".

Ou plus spécifiquement, le runtime s'attend à ce que les objets soient conformes au protocole NSObject, et la manière la plus simple de le faire est de s'assurer que vos objets héritent de la classe NSObject.

+0

Oh ok .. merci! –

Questions connexes