所以当涉及到核心数据时,我非常棒。我有两个NSManagedObjects,Map和AddressAnnotation。在我的一个ViewControllers中,我这样做:
Map *aMap = (NSManagedObject *)[self.address map];
我收到了警告
Incompatible pointer types initializing 'Map *__strong' with an expression of 'NSManagedObject *'
为什么我会收到此警告?谢谢!
编辑: 地址属性声明: @property(非原子,强)AddressAnnotation *地址;
答案 0 :(得分:3)
假设Map
是NSManagedObject
的子类,您要求编译器隐式地向下转换。 (NSManagedObject
到Map
)。 Map
的所有实例都是NSManagedObject
,但反过来不一定正确......转而使用id
或Map*
。