EDIT: I nie zamierzam tego robić, ja sobie teraz sprawę, jak niebezpieczna może to być. Ale pytanie pozostaje wyłącznie do celów akademickich.Dostęp do zmiennej prywatnej w wynikach Kategoria omyłkowo łącznikowej
Próbuję zaimplementować kategorię na NSCollectionView, która pozwoli mi uzyskać dostęp do prywatnej zmiennej _displayedItems. Muszę mieć dostęp do niego w mojej podklasie. Tak więc utworzyłem następującą kategorię:
@interface NSCollectionView (displayedItems)
- (NSMutableArray *)displayedItems;
@end
@implementation NSCollectionView (displayedItems)
- (NSMutableArray *)displayedItems
{
return _displayedItems;
}
@end
... która wygląda na to, że powinna doskonale działać. Jednak, gdy próbuję skompilować ten łącznik daje mi następujący błąd:
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
wiem na pewno, że _displayedItems istnieje w NSCollectionView, szukałem w interfejsie, a także drukowane to zawartość używając gdb. Czy ktoś wie o sposobie rozwiązania tego problemu?
Z góry dziękuję!
Billy
Znalazłem to być najlepszym rozwiązaniem. Łatwy, prosty i bezpieczny: http: // stackoverflow.com/questions/16678463/accessing-a-method-in-a-super-class-when-it-not-not-exposed –