不兼容的指针类型使用NSManagedObject的表达式初始化__strong

时间:2012-09-17 03:21:30

标签: iphone core-data

所以当涉及到核心数据时,我非常棒。我有两个NSManagedObjects,Map和AddressAnnotation。在我的一个ViewControllers中,我这样做:

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

我收到了警告

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

为什么我会收到此警告?谢谢!

编辑: 地址属性声明: @property(非原子,强)AddressAnnotation *地址;

1 个答案:

答案 0 :(得分:3)

假设MapNSManagedObject的子类,您要求编译器隐式地向下转换。 (NSManagedObjectMap)。 Map的所有实例都是NSManagedObject,但反过来不一定正确......转而使用idMap*