retainCount бесполезен. Не называй это.
Это бесполезно для обнаружения утечек, поскольку есть намного лучшие, более точные и менее вводящие в заблуждение инструменты.
Есть несколько проблем с вашим кодом (но утечка не является одной из них):
NSString * свойства должны быть copy
вы не используете свойство для установки строкового значения в init
, поэтому экземпляры DataMode не сохраняют свои строки.
не существует метода dealloc
Что касается удержания; Я удивлен, что это «3». Я ожидал бы, что это будет 2bazillionsomething, поскольку это константная строка (а stringWithString:
из константной строки просто возвращает строку). Поскольку вы использовали stringWithFormat:
, константная строка превращается в непостоянную строку , Если бы вы использовали постоянную строку или stringWithString:
, это было бы что-то недопустимое (без знака -1 ... UINT_MAX ...).
В любом случае у вас есть:
- + 1 для
stringWithString:
- + 1 для звонка
a.name
- + 1 для звонка
a.name
+ 3 в целом.
Если Instruments заявляет об утечке, опубликуйте скриншот.