EDIT: Tôi sẽ không làm điều này, bây giờ tôi nhận ra mức độ nguy hiểm của điều này. Nhưng, câu hỏi vẫn ở lại cho mục đích học tập thuần túy.Truy cập biến riêng tư trong Kết quả danh mục trong lỗi trình liên kết
Tôi đang cố triển khai danh mục trên NSCollectionView cho phép tôi truy cập biến riêng _displayedItems. Tôi cần để có thể truy cập nó trong phân lớp của tôi. Vì vậy, tôi đã tạo danh mục sau:
@interface NSCollectionView (displayedItems)
- (NSMutableArray *)displayedItems;
@end
@implementation NSCollectionView (displayedItems)
- (NSMutableArray *)displayedItems
{
return _displayedItems;
}
@end
... có vẻ như nó sẽ hoạt động hoàn hảo. Tuy nhiên, khi tôi cố gắng biên dịch này, mối liên kết mang lại cho tôi những lỗi sau:
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
Tôi biết một thực tế rằng _displayedItems tồn tại trong NSCollectionView, tôi đã xem xét giao diện và cũng được in nội dung của nó sử dụng gdb. Có ai biết cách sửa lỗi này không?
Cảm ơn trước!
Billy
Tôi thấy đây là câu trả lời hay nhất. Dễ dàng, đơn giản và an toàn: http: // stackoverflow.com/questions/16678463/truy cập-a-method-in-a-super-class-khi-nó-không-tiếp xúc –