0

私はCoreDataのため息に苦しんでいるので、このAppleCoreDataチュートリアルを実行することにしました。チュートリアルの中で、これまでにまとめたプロジェクトをビルドするように求められます。だから私は現在チュートリアルのここにいます。プロジェクトをビルドしているときに、次のエラーが発生します。

Type of property 'managedObjectContext' ('NSManagedObjectContext *') does not match type of ivar 'managedObjectContext' ('MSManagedObject *__strong')

RootViewController.m

Ivar is declared here

それは私がエラーウィンドウで得ているものです。

これが私のファイルがどのように見えるかです、

RootViewController.h http://pastie.org/4111206

RootViewController.m http://pastie.org/4111216

AppDelegate.h http://pastie.org/4111222

AppDelegate.m http://pastie.org/4111227

4

2 に答える 2

1

ivarが正しく宣言されていません。RootViewController.hでは、

NSManagedObject *managedObjectContext;

エラーが文句を言うように、書かれるべきです、

NSManagedObjectContext *managedObjectContext;

@synthesize実際、最新のランタイムでは、かなり長い間、 'dプロパティのバッキングivarを明示的に宣言する必要はありませんでした(通常は不適切なアドバイスです) 。したがって、ivar行を完全に削除して、コンパイラーにivarを作成させることができます。

于 2012-06-18T22:43:48.803 に答える
0

エラーメッセージはすでにそれを説明しています。クラスNSManagedObjectのivarmanagedObjectContextがあります(これは間違いです)。

同じ名前でクラスが異なるivarがあるため、コンパイラはプロパティmanagedObjectContextを合成できません。

ivarの名前を変更し、合成行を変更します。

@synthesize managedObjectContext = _managedObjectContext;
于 2012-06-18T22:46:15.483 に答える