2009-01-22 52 views
0

问题是我应该使用我的视图控制器的属性?我应该使用@property作为控制器类变量吗?

考虑以下情况:

  1. 我在父类中的视图控制器对象:MyViewController * myVC;

  2. 我不会在父类的dealloc方法中释放此视图控制器。

  3. 我用鉴于这样的控制器:

    // 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; 
    

是否有使用这种方法的任何问题?

+0

我不明白你的问题。 itemEditVC应该是myVC吗?房产会在哪里出现? – 2009-01-22 15:30:55

回答

1

在您修改的代码中,myVC由导航控制器保留,并在弹出堆栈时释放(并释放)。如果这是你正在寻找的行为,那么是的这个代码就好了。

如果您需要myVC留待以后重用或其他事情,那么请将该版本移至您父类的dealloc方法,并将该作业移除至nil。

1

布拉德拉森说。 myVC会泄漏,除非你在拥有类的dealloc方法中释放它。使它成为一个属性不会影响这种行为(并且itemEditVC var来自哪里?)将它作为属性公开的唯一原因是,如果外部类需要访问此变量,并且希望确保正确释放/保留语义该属性被修改。

相关问题