Я только что установил Xcode 4 и открыл более раннюю версию своего приложения. Анализатор сообщает об этой строке:
[self.myViewControllerObject release];
неверное уменьшение счетчика ссылок объекта, который в данный момент не принадлежит вызывающей стороне
Я не включил ARC для моего проекта.
Когда я анализирую v2.0 моего приложения в Xcode 3.2.5, оно не показывает никакой потенциальной ошибки.
Заголовок:
@class MyViewController;
MyViewController *myViewControllerObject;
@property ( nonatomic , retain ) MyViewController *myViewControllerObject;
Реализация:
#import "MyViewController.h"
@synthesize myViewControllerObject;
При нажатии кнопки у меня есть:
TRY 1:
self.myViewControllerObject = [[MyViewController alloc]initWithNibName:@"MyViewController" bundle:nil];
[self.navigationController pushViewController:self.myViewControllerObject animated:YES];
[self.myViewControllerObject release];
TRY 2:
MyViewController *temp = [[MyViewController alloc]initWithNibName:@"MyViewController" bundle:nil];
self.myViewControllerObject = temp;
[temp release];
[self.navigationController pushViewController:self.myViewControllerObject animated:YES];
[self.myViewControllerObject release];
TRY 3:
self.myViewControllerObject = [[MyViewController alloc]initWithNibName:@"MyViewController" bundle:nil];
[self.navigationController pushViewController:self.myViewControllerObject animated:YES];
В методе dealloc
я освобождаю его:
[self.myViewControllerObject release];