В своей конфигурации по умолчанию (т.е. моей) XCode несколько бесполезен в своем окне отладчика для переменных, особенно из общего набора коллекций Objective-C.
Кажется, что отладчик обычно хочет отобразитьлежащая в основе структуры Obj-C, когда я раскрываю некоторый объект, поэтому я смотрю на isa
s и иерархию классов.
Но то, что я почти всегда хочу здесь, это нечто семантически значимое для самого объекта.Например, для NSDictionary
в идеале я бы хотел увидеть список ключей / значений.Если эти ключи и значения, например, NSString
s, я просто хочу увидеть строковые значения, а не сложные вложенные объекты.То же самое касается NSSet
s, NSArrays
и байтов внутри NSData
.И NSString
s, хотя обычно получают их строковое представление в столбце «Сводка», на них невозможно смотреть, когда они длинные (например, имя пути, которое слишком длинно, чтобы поместиться в столбце, кажется, не прокручивается) - когда ядважды щелкните по нему, вместо этого я получаю строку шаблона дисплея, поэтому я не могу выбрать или скопировать ее.
Я недавно провел время в отладке Eclipse Java, и, несмотря на все его ошибки, Eclipse знает обо всех.коллекции Java, и имеет простой однострочный дамп из содержимого строки или коллекции или чего-либо еще, когда вы найдете это в отладчике.
Есть ли способ получить это в Xcode?Я упускаю что-то очевидное или мне нужно погрузиться в систему шаблонов дисплея?Я знаю, что там есть некоторая поддержка, поскольку NSArrays, похоже, получают специальный вид листового формата, NSDictionaries получают сводку «2 пары ключ / значение» и т. Д.
РЕДАКТИРОВАТЬ: можно зайти в GDB, чтобы получить большеданные об объектах.Я разочарован тем, что po
GDB, действующий на NSDictionary
, дает очень полезный вывод, который я ожидаю от отладчика GUI.Можно ли это реплицировать без переключения контекста на консоль?
Мне так нравится среда Xcode, но почти полная непрозрачность объектов, которые я использую все время, действительно блокирует время отладки.Спасибо.