Я переопределяю объект -(NSString*)description
, однако Xcode всегда отображает error: summary string parsing error
в поле summary в виде переменных.Описание NSObject и пользовательские сводки в Xcode
Моя текущая реализация является следующее:
- (NSString*)description {
return [NSString stringWithFormat:@"<%@ %p> x=%f, y=%f", self.class, self, _x, _y];
}
Если я ввожу в консоли po objectName
, LLDB показывает прекрасный выход, как и ожидалось, однако Xcode и команда p objectName
всегда указывает на ошибку, так что правильный формат описания отладочную сделать резюме поле работы? Стоит заметить, что вывод команды «p» совпадает с итоговым сообщением, которое вы видите в Xcode для экземпляров классов Foundation.
Update:
Насколько я могу видеть из «WWDC 2012 сеанса отладки в Xcode», пользовательские резюме могут быть реализованы с использованием только на заказ питон скрипт. -(NSString*)description
или -(NSString*)debugDescription
методы никак не связаны с итоговыми сообщениями. Я думал, что это потому, что я получил сообщение об ошибке, но, похоже, это стандартное сообщение для классов, у которых нет собственных форматировщиков.
Вы говорите «переопределить» - это подкласс или категория? А что такое суперкласс? –
И я не понимаю, что вы делаете «p objectName» в Xcode. В отладчике Xcode я всегда делал 'po' для объекта. 'p' для скаляров. –
Одна вещь, которую следует отметить, Hot Licks, заключается в том, что «p objectName» будет работать для большинства стандартных объектов Foundation (ваши NSStrings, ваши NSArrays и т. Д.), Потому что lldb имеет встроенные форматы, которые умеют форматировать объект, не запуская никаких кода в вашей программе. Как отмечает Энди в своем обновлении, вы также можете написать свои собственные форматы для своего собственного объекта в Python - это довольно легко, как только вы его повесите. –