Отражение свойств в Objective C для iOS

Я хотел бы иметь возможность использовать отражение в классах в Objective C, чтобы определить, какие свойства доступны во время выполнения.

Я делаю что-то подобное для классов прямо сейчас, используя

NSString *str = NSStringFromClass([object class]);  

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

 holex07 июл. 2014 г., 19:48
Удачи с вашим проектом!
 holex07 июл. 2014 г., 18:17
никаких обид. Я очень сомневаюсь, что ваша база данных такаядинамический» и этобуду единственным и всемогущим решением.
 holex07 июл. 2014 г., 12:23
почему вы не используете протоколы, чтобы убедиться, что фактическое свойство / метод доступно во время выполнения для определенных объектов?
 bigtunacan07 июл. 2014 г., 19:27
Как я и сказал; Вы понятия не имеете, что я делал в то время. Я не создавал одноразовый слой доступа к данным. Я создал объект реляционного картографа для использования с SQLite. По сути это ActiveRecord для iOS. Это тогда позволяет автоматический доступ к любой таблице для того, что мы считаем "более вероятный" необходимое поведение. Если разработчик нуждается в чем-то сверх того, он может переопределить поведение, определяя протокол только тогда, когда это действительно необходимо. Это сэкономило нам 3 месяца работы над первым проектом, на котором мы его использовали; это включало время для создания самой библиотеки.
 bigtunacan07 июл. 2014 г., 18:10
Свойства определяются во время выполнения на основе схемы базы данных, поэтому динамический вызов метода требует меньше кода и является более гибким для моего конкретного случая использования. Также; Интересно, как ты голосуешь против меня, хотя ты абсолютно не представляешь, что яЯ пытаюсь достичь.

Ответы на вопрос(1)

Решение Вопроса

Может быть, это поможет:

Вы можете получить список свойств в классе, используя class_copyPropertyList

objc_property_t * class_copyPropertyList(Class cls, unsigned int *outCount)

а затем из каждого свойства вы можете получить имя свойства, используяproperty_getName функция и атрибуты свойства, используяproperty_getAttributes функция (если вам нужно отфильтровать свойства чтения-записи).

 rob mayoff15 нояб. 2012 г., 08:42
ПроверьтеObjective-C Runtime Руководство по программированию иObjective-C Runtime Ссылка для дополнительной информации.
 bigtunacan18 нояб. 2012 г., 16:05
Спасибо вам обоим за ответ на мой прямой вопрос, а также за чрезвычайно информативные руководства, которые предоставили много дополнительной информации, которую я тоже хотел.

Ваш ответ на вопрос