objective-c – 在目标c中从id到class的动态类型转换

前端之家收集整理的这篇文章主要介绍了objective-c – 在目标c中从id到class的动态类型转换前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在Objective C中动态转换并访问实例属性.这里有一个伪代码
id obj;
if (condition1)
    obj = (Class1*)[_fetchedResults objectAtIndex:indexPath.row];
else
    obj = (Class2*)[_fetchedResults objectAtIndex:indexPath.row];

NSNumber *latitude = obj.latitude;

然后编译器告诉我以下内容
在’__strong id’类型的对象上找不到属性’latitude’

Class1和Class2都是核心数据实体,具有几乎相同的属性.在condition1中_fetchedResults返回Class1类型的对象,在condition2中_fetchedResults返回Class2类型的对象.

有人能给我一个如何解决这类问题的提示吗?

谢谢!

解决方法

您可以通过键值编码(KVC)访问属性
[obj valueForKey:@"latitude"]

猜你在找的C&C++相关文章