2010-04-20 56 views
1

一般來說,我通過創建委託的指針調用我的其他類視圖,然後通過下面的鏈接調用其他類: -在iPhone中調用其他類視圖的最佳方式?

第一種方式: -

Mydelegate *ptr = (Mydelegate *)[[UIApplication sharedApplication]delegate]; 

[self.navigationController pushViewController:ptr.NextClasspointer animated:YES]; 

第二種方法: -

創建該類的一個指針,它ü要撥打: -

NextClass *nextptr = [[NextClass alloc]initWithnibName:@"NextClass" bundle:nil]; 
[self.navigationController pushViewController:nextptr animated:YES]; 

[nextptr release]; 
nextptr = nil; 

這上面兩種方法我一般使用,但我的問題是日在哪一個是最適合大項目,以便我的堆棧問題將被刪除我的意思是內存問題將被解決。並且 是有必要釋放指針的第一和第二種情況是我釋放的方式是正確還是錯誤

請幫助我 在此先感謝

回答

0

在內存管理方面,這兩者之間沒有任何區別 - 既可以讓您有內存泄漏,也可以不依賴於其他代碼!

但是,請記住其中任何一種情況,每次用戶想要在導航中「向下鑽取」另一個級別時,都必須從nib文件加載視圖;相反,每次他們「備份」導航堆棧時,這些將被卸載。通常,如果我的用戶可能一直在導航堆棧上下運行,則我會保留一個「子」視圖控制器實例,並在用戶想要轉到堆棧時將其推回到堆棧。

如果您有內存問題,我認爲這可能是由您的NextClass使用的對象在卸載/發佈時未正確釋放引起的。仔細檢查您在NextClass對象中合成/分配的所有對象是否正在ViewDidUnload方法中釋放。

相關問題