Есть две функции, которые вы можете использовать как таковые.
- (NSString*)description
Это будет отображаться, когда вы поместите свой объект как I.E. параметр для NSLog
. Другая функция описание:
- (NSString*)debugDescription
Это будет называться, когда вы делаете po anInstanceOfYourClass
в окне командной строки отладки. Если ваш класс не имеет функции debugDescription
, тогда будет вызван только description
.
Обратите внимание, что базовый класс NSObject
имеет description
, но он довольно голый: он отображает только адрес объекта. Поэтому я рекомендую вам реализовать description
в любом классе, из которого вы хотите получить информацию, особенно если вы используете метод description
в своем коде. Если вы используете description
в своем коде, я предлагаю вам реализовать debugDescription
, а также сделать debugDescription
более подробным.
Обратите внимание, что если вы используете CoreData, свойство 'description' [зарезервировано] (http://stackoverflow.com/questions/4717519/why-cant-i-use- description-as-an-attribute-name-for-a-core-data-entity) ... и предоставит полезную информацию для отладки! В этом случае вам нужно придумать свое собственное уникальное имя метода. – Nuthatch
Является ли 'debugDescription' также зарезервированным? Хотя я думаю, что 'DebugDescription' предполагается использовать отладчиком вроде LLDB. – MaddTheSane