2015-10-20 7 views
1

Я получаю сообщение об ошибке выполнения:Как найти ту кнопку, на которую ссылается консоль в Xcode?

Failed to set (keyPath) user defined inspected property on (UIButton): [<UIButton 0x13fe79390> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key keyPath. 

Поскольку у меня есть тысячи UIButton с, есть быстрый способ найти то, что делает этот номер 0x13fe79390 соответствует? Я знаю, что могу po 0x13fe79390, но это ничего не делает.

+1

То есть не компилятор жалуется; это время выполнения. – trojanfoe

+1

Это UIButton, который связан с ограничением 500 в нижней части супервизора. 'Тысячи UIButtons', что? –

+0

Спасибо @LordZsolt, это был всего лишь пример. – Cesare

ответ

3

Это решение предназначено для отладки forUndefinedKey. Сначала попробуйте добавить Все контрольные точки исключения. Компилятор остановится там, где произошла ошибка.

Кроме того, вы можете добавить символическую точку останова, как на скриншот я размещаю, то правой кнопка мыши точки останова, выбранные редактировать BreakPoint

Тогда остановится на setValue:forUndefinedKey:. Вы можете увидеть дерево вызовов на скриншоте левой части. Вот моя ошибка происходит в [ViewController viewDidLoad]

enter image description here

Кроме того, вы можете использовать адрес в LLDB. Это, как вы инстанцируете объект кнопки

e UIButton * $b = (UIButton*)0x7fb938c64750 

Это, как вы печатаете SuperView Данные баттона:

po [$b superview] 
+0

Хотя это не отвечает на мой вопрос, я действительно ценю, что вы публикуете это. Это определенно будет полезно! – Cesare

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