Вы должны прочитать это снова:
Руководство по управлению памятью какао
Короче говоря, если вы хотите, чтобы что-то прилипло к вам должно retain
it.
Если вы хотите, чтобы что-то ушло , и вы ранее сохранили это , вы должны release
или autorelease
.
Вы никогда не должны вызывать dealloc
напрямую (за исключением [super dealloc];
в конце каждого из ваших dealloc
методов).
Вы никогда не должны release
или autorelease
объект, который вы не retain
.
Обратите внимание, что некоторые методы do возвращают сохраненные объекты, которые вы должны release
. Если вы alloc
экземпляр класса, это означает retain
. Если у вас copy
и экземпляр, копия сохраняется.
Если вы когда-нибудь испытываете желание использовать метод retainCount
, не делайте этого. Это не полезно. Рассматривать только считать считать как дельту; если вы добавите, вы должны вычесть, но абсолютное значение - это деталь реализации, которую следует игнорировать.
(Другими словами, даже если бы были способы окончательно проверить действительность объекта - нет - это был бы неправильный ответ.)
Да, и используйте функцию Построить и проанализировать в XCode. Он отлично справляется с задачами по управлению памятью, но не совсем идеально.