私は.pchファイルにこれを持っています:
#import "UIViewController+Loader.h"
カテゴリの実装は次のようになります。
static char kUIViewControllerBaseViewKey;
@implementation UIViewController (Loader)
- (void)setLoader:(LoaderView *)loaderView {
objc_setAssociatedObject(self, &kUIViewControllerBaseViewKey, loaderView, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (LoaderView *)loader {
LoaderView *loaderView = (LoaderView *)objc_getAssociatedObject(self, &kUIViewControllerBaseViewKey);
if (!loaderView) {
loaderView = [[LoaderView alloc] initWithView:self.view];
[self.view addSubview:loaderView];
[self setLoader:loaderView];
}
return loaderView;
}
@end
問題は、これを行うと、どのビューコントローラーでも次のようになることです:
[self.loaderView doSomething];
Xcode には次のエラーが表示されます。Property 'loaderView' not found on object of type MyViewController
ただし、プロジェクトは正常にコンパイルされ、loaderView の doSomething: メソッドは正常に動作します。Xcode でこれらのエラーが表示されないようにするにはどうすればよいですか?