0

私は.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 でこれらのエラーが表示されないようにするにはどうすればよいですか?

4

1 に答える 1

0

頭を悩ませた後、「プリコンパイル済みヘッダーの共有を増やす」というビルド設定を見つけました。これを YES に変更すると、問題は解消されました。これが何をするのかの説明を読んだ後でも、なぜこれが問題を解決するのか理解できません。しかし、それは修正されています。

于 2014-10-23T22:52:25.603 に答える