2013-10-17 1 views
2

Dans mon projet, je me sers de la catégorie NSObject+Properties.h (voir aqtoolkit: https://github.com/AlanQuatermain/aqtoolkit/blob/master/Extensions/NSObject%2BProperties.h)Objectif C: comment hériter des méthodes de catégorie chargées dans une classe parent?

J'ai alors une classe que je déclare que

#import <Foundation/Foundation.h> 
#import "NSObject+Properties.h" 

@interface GFDictionaryInitiable : NSObject 
... 

J'ai alors plusieurs sous-classes de GFDictionaryInitiable, comme GFRestaurant:

#import <Foundation/Foundation.h> 

#import "GFDictionaryInitiable.h" 

@interface GFRestaurant : GFDictionaryInitiable 
... 

Mon problème est que je ne peux pas accéder à des méthodes définies dans la catégorie NSObject+Properties dans mes sous-classes. Par exemple, je reçois l'erreur:

-[GFRestaurant hasPropertyNamed:]: unrecognized selector sent to instance 0x2e57240 

Comment puis-je avoir tous « Hériter » mes sous-classes les méthodes de la catégorie qui sont chargés dans la classe parente?

+1

Etes-vous sûr que "NSObject + Properties.m" a été ajouté à votre cible? –

+1

Ça devrait marcher. Êtes-vous sûr que votre fichier .m est inclus dans votre cible? Allez dans 'Build Phases> Compiled Sources' et voyez si le' NSObject + Properties.m' est là. –

Répondre

4

Comme vous obtenez une exception d'exécution , et non une erreur de compilation, je suppose que vous avez oublié ajouter à votre cible « NSObject + Properties.m ». Sélectionnez le fichier et cochez la case "Adhésion cible" dans l'inspecteur de fichiers.

0

Il suffit d'ajouter:

#import "NSObject+Properties.h" 

aux fichiers de vos sous-catégories.

+1

Il n'a pas de difficulté à compiler, donc je ne crois pas que cela réglera son problème. –

+0

Oui. Probablement la réponse de Martin est la bonne - mais juste au cas où il signale un avertissement de compilateur. –

Questions connexes