2009-01-22 50 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來自哪裏?)將它作爲屬性公開的唯一原因是,如果外部類需要訪問此變量,並且希望確保正確釋放/保留語義該屬性被修改。

相關問題