Чтение собственного NSObject из свойства NSObject - PullRequest
2 голосов
/ 31 марта 2011

У меня есть собственный класс NSObject, который позволяет вызывать людей, и класс из CloudMade RMMarker.h под названием RMMarker. У класса RMMarker есть свойство data, которое является NSObject. Я знаю установить данные, выполнив это:

People *aPeople = [[People alloc] init];   
marker.data = aPeople;

Как я могу прочитать данные, которые хранятся в данных? Все, что я знаю, это не

People *aPeople = [[People alloc] init];
aPeople = marker.data;

Как правильно это сделать?

Спасибо Philip

Ответы [ 2 ]

3 голосов
/ 31 марта 2011

Так как вы знаете, что marker.data имеет тип People *, вы можете просто привести его к правильному типу:

People *aPeople = (People *)marker.data;

Обратите внимание, что это будет работать правильно, только если marker.data на самом делеPeople * объект (или один из его подклассов).Чтобы быть уверенным, вы можете добавить проверочный тест :

People *aPeople = (People *)marker.data;
NSAssert([aPeople isKindOfClass:[People class]], "oops! Wrong type!");

Для получения важных сведений об использовании NSAssert () , пожалуйста, прочитайте: ЧтоНа практике хороши утверждения или NSAssert?

0 голосов
/ 31 марта 2011

Из того, что я вижу из источника RMMarker, данные ivar просто сохранят объект People.Поэтому, если вы хотите сослаться на объект People позже, просто сделайте:

 People *aPeople = (People *)marker.data;
...