2012-01-20 3 views
0

Когда я анализирую его получать эти сообщения:объект просочилась: выделяется объект не ссылается позже

Метод возвращает объект Objective-C с +1 сохранить счетчик для ниже заявления

self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

объектов утечка объект Кутаиси не refrenced позже в этом пути выполнения и имеет сохранить кол + 1

[self.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 

Каждый знает, как исправить эти сообщения.

Спасибо за помощь.

+0

Вы попытались балансировать выделение вида с выпуском? – Vin

ответ

1

self.view - это свойство @property, которое сохраняется, когда оно установлено. Вам нужно будет освободить его.

Try:

UIView *newView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
self.view = newView; 
[newView release]; 

или

self.view = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
2

Предполагая, что view это свойство с retain атрибутом self.view сохраняет вид, поэтому сохраняют созданный initWithFrame является дополнительным сохранить, который должен быть выпущен ,

SIMPLE autorelease:

UIView *newView = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 

еще лучше, если это возможно использование ARC. ARC доступен для iOS 4.x и выше и по-умолчанию для смешанной реализации. Тогда нет retain, release или autorelease звонков в приложении.

Смежные вопросы