Objective-C: утечка памяти или не с несколькими назначениями с Autorelease?
-
25-09-2019 - |
Вопрос
Если я сделаю следующую вещь, это сделает утечки памяти?
SomeClass* tmp;
NSDate* thetmpdate;
tmp = [[[SomeClass alloc] init] autorelease];
thetmpdate = [NSDate date];
// Do something long with tmp and date
tmp = [[[SomeClass alloc] init] autorelease];
thetmpdate = [NSDate date];
// Do something long with tmp and date
tmp = [[[SomeClass alloc] init] autorelease];
thetmpdate = [NSDate date];
// Do something long with tmp and date
Решение
Нет, нет утечки в коде, который вы разместили. Все объекты будут автозависимы, когда пул автореляции покраснется, независимо от того, изменяется ли переменное удерживание их указателей или нет.
Не связан с StackOverflow