2015-11-21 5 views
1

Пути кодирования ключевого значения полезны в UIKit. Они часто позволяют настраивать элементы, которые не указаны в публичном API представления, или в инспекторе Interface Builder для этого представления.Поиск путей кодирования по значению ключа

Например, вы можете настроить цвет текста UIDatePicker используя textColor ключевой путь, но не похоже, чтобы это свойство или метод воздействия этой конфигурации - единственный способ сделать это с помощью кодирования ключ-значение.

Учитывая, что - как разработчик iOS может найти пути кодирования ключа для элементов? Я нашел этот конкретный пример в ответе StackOverflow, но как они его нашли? Мне бы хотелось, чтобы я мог проверять эти классы и находить свои пути кодирования ключевого значения самостоятельно или, по крайней мере, иметь хорошую краудсорсированную ссылку на все пути ключей KVC, которые могут быть полезны, когда я пытаюсь настроить представление.

+0

Имейте в виду, что использование таких недокументированных путей ключей может привести к поломке или сбою кода, если что-то изменится в обновлении iOS. Также есть возможность отклонить приложение. Никогда не безопасно использовать недокументированные функции. – rmaddy

+0

Итак, если вы собираетесь использовать пользовательские атрибуты времени выполнения в построителе интерфейсов, вы бы рекомендовали использовать его только для определения атрибутов, открытых в качестве общих свойств в API? –

ответ

1

Вы можете использовать class-dump, чтобы просмотреть все свойства на классе Objective-C, в том числе частных свойств (свойств с префиксом _ подчеркивания)

Но и да как @rmaddy сказал, большая часть времени вы не будете хотите изменить частные свойства - но это должно быть довольно безопасно, если вы просто читаете и не пишете. Например, NSUndoManager имеет частную собственность, _undoStack, что очень полезно прочитать, чтобы вы могли видеть, что в настоящее время находится в вашем стеке отмены.

Смежные вопросы