編輯:我不打算這樣做,我現在意識到這可能有多危險。但是,這個問題只是純粹的學術目的。訪問類別中的私有變量導致鏈接器錯誤
我想在NSCollectionView上實現一個類別,讓我可以訪問私有變量_displayedItems。我需要能夠在我的子類中訪問它。所以,我創建了以下類別:
@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:// stackoverflow。com/questions/16678463/access-a-super-class-when-not-exposed – 2014-06-06 10:28:38