我有一个自定义的NSObject类,让其在People中调用,还有一个来自CloudMade RMMarker.h的类,称为RMMarker。 RMMarker类具有一个称为data的属性,它是一个NSObject。我知道这样做可以设置数据:
People *aPeople = [[People alloc] init];
marker.data = aPeople;
如何读取存储在数据中的数据?我所知道的不是
People *aPeople = [[People alloc] init];
aPeople = marker.data;
正确的做法是什么?
谢谢
菲利普
最佳答案
由于您知道marker.data
的类型为People *
,因此只需将其转换为正确的类型即可:
People *aPeople = (People *)marker.data;
请注意,这仅在
marker.data
实际上是People *
对象(或其子类之一)时才能正常工作。当然,您可以添加assertion test:People *aPeople = (People *)marker.data;
NSAssert([aPeople isKindOfClass:[People class]], "oops! Wrong type!");
有关使用NSAssert()的重要详细信息,请阅读:What are assertions or NSAssert good for in practice?