EDIT: Je ne vais pas faire cela, je réalise maintenant à quel point cela peut être dangereux. Mais, la question reste à des fins purement académiques.L'accès à une variable privée dans la catégorie entraîne une erreur de lien
J'essaie d'implémenter une catégorie sur NSCollectionView qui me permettra d'accéder à la variable privée _displayedItems. Je dois pouvoir y accéder dans ma sous-classe. Donc, j'ai créé la catégorie suivante:
@interface NSCollectionView (displayedItems)
- (NSMutableArray *)displayedItems;
@end
@implementation NSCollectionView (displayedItems)
- (NSMutableArray *)displayedItems
{
return _displayedItems;
}
@end
... ce qui semble fonctionner parfaitement. Cependant, lorsque je tente de compiler cela, l'éditeur de liens me donne l'erreur suivante:
Undefined symbols:
"_OBJC_IVAR_$_NSCollectionView._displayedItems", referenced from:
-[NSCollectionView(displayedItems) displayedItems] in NSCollectionView+displayedItems.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Je sais pertinemment que _displayedItems existe dans NSCollectionView, je l'ai regardé l'interface et aussi imprimé son contenu en utilisant gdb. Est-ce que quelqu'un sait d'un moyen de résoudre ce problème?
Merci d'avance!
Billy
J'ai trouvé que c'était la meilleure réponse. Facile, simple et sûr: http: // stackoverflow.com/questions/16678463/access-a-method-in-a-super-class-when-its-not-exposed –