6

古いサンプル コードを Xcode 4.5 で使用すると問題が発生します。

私のコードでは、次のプロパティが定義されています

@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;

次に、次のアクセサー メソッドがあります。

- (NSManagedObjectModel *)managedObjectModel {
    if (_managedObjectModel != nil)
    {
        return _managedObjectModel;
    }

    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"MyPrototype" 
                                                   withExtension:@"momd"];
    _managedObjectModel = [[NSManagedObjectModel alloc] 
                                          initWithContentsOfURL:modelURL];
    return _managedObjectModel;
}

問題は、Xcode が「見る」ことができないため、複数のエラーをスローすること_managedObjectModelです。アクセサーの名前を から に変更するmanagedObjectModelmanagedObjectModel2、すべて正常に動作します。問題は自動プロパティ合成に関連していると思いますがXcode 4.5、問題を回避するために何をすべきかわかりません。助言がありますか?

4

1 に答える 1

12

生成するメソッドがない場合、Clang はインスタンス変数を自動的に合成しません。この場合、読み取り専用プロパティを要求したため、setter はなく、getter を提供しています。@synthesize managedObjectModel=_managedObjectModelインスタンス変数を自分で宣言するか、宣言するだけです。

于 2012-12-20T16:02:35.127 に答える