【发布时间】:2011-05-24 16:11:00
【问题描述】:
编辑:我不打算这样做,我现在意识到这有多危险。但是,这个问题仅用于学术目的。
我正在尝试在 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 打印了它的内容。有谁知道解决这个问题的方法吗?
提前致谢!
比利
【问题讨论】:
-
我发现这是最好的答案。轻松、简单、安全:stackoverflow.com/questions/16678463/…
标签: objective-c cocoa private linker-errors categories