Il est nécessaire de créer une catégorie avec une nouvelle variable (de type nsarray).
originalClass + extension.h: p> mais j'ai eu l'erreur: < code> ne peut pas déclarer variable à l'intérieur @interface ou @protocol code>. p> Aide à résoudre le problème. P> p>
3 Réponses :
simple: vous ne pouvez pas ajouter d'instance variables à une classe à l'aide d'une catégorie. P>
Si vous devez stocker des données supplémentaires: utilisez Objets associés. P>
@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 / ...
Vous ne pouvez pas, une catégorie ne peut pas déclarer des variables d'instance supplémentaires ... p>
Référence: ici . P>
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.
@Altaveron C'est une solution de contournement ...
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. P> blockQuote>
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. P>
@Altaveron La même solution de contournement que H2CO3 proposée, plus tôt ... (Stackoverflow est étrange :-))
Cette réponse a un lien vers le code exact.
@Altaveron Mine a exactement le même lien.
Non! oleb.net/blog/2011 / 05 / ...