Доступ к имени свойства (например, self.theProperty) в ObjC - PullRequest
0 голосов
/ 24 марта 2010

Я пытаюсь прочитать имя свойства, но я не знаю, как. Возможно ли в ObjC получить строку "theProperty" из self.theProperty?

Я знаю, как прочитать все свойства (с "class_copyPropertyList") и их имена (с "property_getName"), но не смог найти способ сделать что-то вроде:

NSString *text = [self.theProperty somehowReadThePropertyName]; 
// expected result is: text == @"theProperty"

Есть идеи?

Ответы [ 2 ]

1 голос
/ 24 марта 2010

Вот как вы можете получить строковое представление геттера для вашей собственности:

NSString *selectorName = NSStringFromSelector(@selector(theProperty));

И так как вы уже использовали property_getName для возврата строки C, вы можете получить NSString, например:

NSString *propertyName = [NSString stringWithCString:property_getName(property)
                                            encoding:NSUTF8StringEncoding];

Но что вы пытаетесь достичь? Там может быть гораздо лучший способ сделать то, что вам нужно сделать.

0 голосов
/ 24 марта 2010

У вас проблема в том, что когда вы вызываете self.theProperty, вы получаете объект любого типа, которым является это свойство. Этот объект обычно не узнает, что он является частью другого объекта с определенным именем свойства.

Вам нужно получить имя свойства с более высокого уровня, чем просто вызвать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...