3

ですから、CoreDataに関しては私はかなり初心者です。2つのNSManagedObjects、MapとAddressAnnotationがあります。私のViewControllerの1つで、これを行います。

Map *aMap = (NSManagedObject *)[self.address map];

そして私は警告を受け取ります

Incompatible pointer types initializing 'Map *__strong' with an expression of 'NSManagedObject *'

なぜこの警告が表示されるのですか?ありがとう!

編集:アドレスプロパティの宣言:@property(nonatomic、strong)AddressAnnotation * address;

4

1 に答える 1

3

Mapが のサブクラスであると仮定するとNSManagedObject、コンパイラに暗黙的にダウンキャストするように求めています。(NSManagedObjectMap)。のすべてのインスタンスは ですMapNSManagedObject、その逆は必ずしも真ではありません...idまたはMap*代わりにキャストします。

于 2012-09-17T07:07:18.640 に答える