クラスのスコープ内のすべてのインスタンス変数も、カテゴリのスコープ内にあります。これには、@ privateで宣言されたものも含め、クラスによって宣言されたすべてのインスタンス変数が含まれます。
したがって、私はこれを行うことができます(そしてそれは機能します):
@interface MyControl : UISearchDisplayController
{
@private
int privateInteger;
}
@end
@implementation MyControl
@end
@interface MyControl (Private)
@end
@implementation MyControl (Private)
- (void)myMethod
{
privateInteger = 0;
}
@end
しかし、なぜこれを行うことができないのですか(未定義のシンボルリンクエラーが発生します):
@interface UISearchDisplayController (MyCategory)
@end
@implementation UISearchDisplayController (MyCategory)
- (void)myMethod
{
_dimmingView = nil;
}
@end
_dimmingViewは、UISearchDisplayControllerのプライベート変数です。
それを可能にするビルドオプションはありますか?それについてはわかりませんか?