Я просто изучаю цель C, поэтому я, вероятно, что-то пропустил, но ниже код является утечкой, верно?Объектив c утечка памяти в документе Apple?
Взятые из apple's docs:
- (NSString*) title {
return [[title retain] autorelease];
}
- (void) setTitle: (NSString*) newTitle {
if (title != newTitle) {
[title release];
title = [newTitle retain]; // Or copy, depending on your needs.
}
}
Поглотитель сохраняет и autoreleases (отменяя друг друга), но связующий сохраняет также. Это останавливает счетчик ссылок до достижения 0, верно? Что мне не хватает?
так, почему бы просто не вернуть название из геттера? Смысл, исключить сохранение/автореферат? –
nevermind, ответил здесь: http://stackoverflow.com/questions/801828/why-should-a-self-implemented-getter-retain-and-autorelease-the-returned-object –