我应该使用@property作为控制器类变量吗?
问题描述:
问题是我应该使用我的视图控制器的属性?我应该使用@property作为控制器类变量吗?
考虑以下情况:
我在父类中的视图控制器对象:MyViewController * myVC;
我不会在父类的dealloc方法中释放此视图控制器。
-
我用鉴于这样的控制器:
// Allocate and Initialize view controller myVC = [[MyViewController alloc] initWithNibName:@"newView" bundle:nil]; // Push View Controller [self.navigationController pushViewController:myVC animated:YES]; // Release memory [myVC release]; myVC = nil;
是否有使用这种方法的任何问题?
答
在您修改的代码中,myVC由导航控制器保留,并在弹出堆栈时释放(并释放)。如果这是你正在寻找的行为,那么是的这个代码就好了。
如果您需要myVC留待以后重用或其他事情,那么请将该版本移至您父类的dealloc方法,并将该作业移除至nil。
答
布拉德拉森说。 myVC会泄漏,除非你在拥有类的dealloc方法中释放它。使它成为一个属性不会影响这种行为(并且itemEditVC var来自哪里?)将它作为属性公开的唯一原因是,如果外部类需要访问此变量,并且希望确保正确释放/保留语义该属性被修改。
我不明白你的问题。 itemEditVC应该是myVC吗?房产会在哪里出现? – 2009-01-22 15:30:55