Objective-C: Как получить значение свойства objc_property_t?

Я использую следующий код для перебора всех свойств объекта. Я успешно получил имя свойства как char , но я не знаю, как получить значение свойства , которое имеет тип id . Есть идеи, как этого добиться?

objc_property_t *allProperties = class_copyPropertyList([currentObject class], &allPropertyCount);

for (unsigned int i = 0; i < allPropertyCount; i++) {

      objc_property_t property = allProperties[i];
      const char * propertyName = property_getName(property);

}

====================================== ==================================================

РЕДАКТИРОВАТЬ: Спасибо всем за отличные комментарии и ответы. Некоторые из вас спрашивали, зачем мне это нужно. Что ж, вот причина:

У меня есть несколько объектов одного класса. Допустим, это класс Person , а его экземпляры - Мэри, Джон и Дэвид. Свойства каждого объекта устанавливаются следующим образом:

mary.age = [NSNumber numberWithInt:20];
john.age = [NSNumber numberWithInt:45];
david.age = [NSNumber numberWithInt:20];

mary.gender = @"female";
john.gender = @"male";
david.gender = @"male";

Моя цель - найти общий способ группировки объектов на основе заданного имени свойства Например. это создаст 2 группы [Дэвид и Мэри] и [Джон]:

[self groupBaseDataObjects:self.persons withPropertyName:"age"];

и это:

[self groupBaseDataObjects:self.persons withPropertyName:"gender"]; 

также создаст 2 группы [Джон и Дэвид] и [Мэри]

6
задан Valentin Radu 22 July 2011 в 12:44
поделиться