Предположим, у вас есть класс «Foo» с свойством «testProperty». Цель состоит в том, чтобы получить имя свойства (не значение) как NSString
. Вопрос, вероятно, дублируется Get property name as a string. Но ответы не помогли мне, потому что:Получить имя свойства объекта как строку в Objective-C
- Мне не нужны все свойства. Мне нужен только конкретный.
- Для
NSStringFromSelector(@selector(prop))
- в любом случае вам нужно ввести строку.
Пусть у меня есть функция, как
- (NSString *)propertyToString:(id)propertyOfObject
В этом случае я могу использовать, например, для сортировки
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:[self propertyToString:foo.testProperty] ascending:NO];
Итак, наконец, код будет чист.
Вы сказали - «Я хочу одного конкретного, не все». ... ммм ... как бы вы знали, какой именно вы хотите, если бы не знали его имени? И если бы вы знали, просто создайте строку самостоятельно ...? – Michal
Ваш вопрос является дубликатом того, с которым вы связались. Просто сделайте так, как в ответе, который вы связали, и, перейдя по всем свойствам, просто сохраните тот, который вы хотите, и проигнорируйте остальные. – Volker
@ Michal, я хотел бы сделать мой код чистым, поэтому я не хочу использовать строковые константы. – razor28