編集:私はこれをやろうとはしません。しかし、この質問は純粋に学問的な目的のためにとどまります。カテゴリ内のプライベート変数にアクセスすると、リンカーエラーが発生する
プライベート変数_displayedItemsにアクセスできるようにするカテゴリをNSCollectionViewに実装しようとしています。私は私のサブクラスでそれにアクセスできる必要があります。
@interface NSCollectionView (displayedItems)
- (NSMutableArray *)displayedItems;
@end
@implementation NSCollectionView (displayedItems)
- (NSMutableArray *)displayedItems
{
return _displayedItems;
}
@end
...それは完璧に動作するはずのように思える:だから、私は、次のカテゴリを作成しました。私はこれをコンパイルしようとすると、しかし、リンカは私に次のエラーを与える:
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
私は_displayedItemsがNSCollectionViewに存在するという事実のために、私はインターフェイスを見ても、それはGDBを使用して内容だ印刷されてきました知っています。誰でもこれを解決する方法を知っていますか?
ありがとうございます!
ビリー
これは最高の回答であることがわかりました。簡単、簡単、安全: http:// stackoverflowcom/questions/16678463/access-a-super-class-exposed-not-exposed-exposed- –