Цель C утечка памяти - PullRequest
1 голос
/ 20 мая 2010

Я создаю одно приложение Cocoa для себя и обнаружил проблему. У меня есть два NSTextFields, и они связаны друг с другом как nextKeyViews. Когда я какое-то время запускаю это приложение с помощью инструмента обнаружения утечек памяти и пролистываю эти 2 текстовых поля, набираю текст и т. Д., Я начинаю протекать память. Это показывает мне, что библиотека AppKit ответственна, утечка объектов - NSCFStrings, а ответственные кадры - [NSEvent charactersIgnoringModifiers] и [NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]. Я знаю, что это довольно краткое и неполное описание, но есть ли у кого-нибудь идеи, в чем может быть проблема?

Кроме того, я не использую GC, поэтому я release мои переменные экземпляра в контроллерах dealloc. А как насчет торговых точек? Поскольку IBOutlet - это просто знак для Interface Builder и на самом деле ничего не значит, стоит ли мне release их тоже?

1 Ответ

1 голос
/ 21 мая 2010

А как насчет торговых точек?Поскольку IBOutlet - это просто знак для Interface Builder и на самом деле ничего не значит, стоит ли мне их выпускать?

Ваша декларация IBOutlet говорит вам, как управлять ею ... Если выобъявите его как retained, а затем @synthesize, процесс загрузки пера будет retain на выходе.Поэтому вы должны release it.

Andiih придумал мнемонику NARC

NARC: "НовыйAlloc Retain Copy ".Если вы не делаете ничего из этого, вам не нужно освобождать.

Следствие также верно. Если вы делаете что-то из этого, вы несете ответственность за освобождение объекта наподходящее время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...