6
votes

Comment ajouter une variable à la catégorie dans l'objectif-c?

Il est nécessaire de créer une catégorie avec une nouvelle variable (de type nsarray).

originalClass + extension.h: xxx

mais j'ai eu l'erreur: < code> ne peut pas déclarer variable à l'intérieur @interface ou @protocol .

Aide à résoudre le problème.


0 commentaires

3 Réponses :


2
votes

simple: vous ne pouvez pas ajouter d'instance variables à une classe à l'aide d'une catégorie.

Si vous devez stocker des données supplémentaires: utilisez Objets associés.


2 commentaires

@Altaveron peut-être que des objets associés peuvent vous aider. (Voir ma réponse modifiée.)


Une catégorie vous permet d'ajouter des méthodes à une classe existante. Point final. Voir développeur.apple.com/Library/ iOS / # documentation / cacao / concept ual / ...



3
votes

Vous ne pouvez pas, une catégorie ne peut pas déclarer des variables d'instance supplémentaires ...

Référence: ici .


6 commentaires

Que dois-je utiliser pour ajouter une nouvelle variable de données à la classe?


Vous devrez faire la sous-classement cependant


Je souhaite utiliser la classe modifiée avec le nom de classe d'origine.


Vous ne pouvez pas ajouter une variable d'instance dans une catégorie, période.


oleb.net/blog/2011 / 05 / ...


@Altaveron C'est une solution de contournement ...



4
votes

Comme l'a déclaré l'autre, vous ne pouvez pas. Bien que H2CO3 a signalé, vous pouvez utiliser Références associatives . Sur Documents Apple : < / p>

Notez qu'une catégorie ne peut pas déclarer des variables d'instance supplémentaires pour la classe; Il n'inclut que des méthodes. Cependant, toutes les variables d'instance dans la portée de la classe relève également de la portée de la Catégorie. Qui inclut toutes les variables d'instance déclarées par la classe, même ceux déclarés @private.

Si vous souhaitez aller pour un objet associé, vous pouvez utiliser Ceci répond. De plus, vous pouvez utiliser Ceci < / a> post by Ole Begemann.