2010-07-22 34 views
1

在函數viewDidUnload中它最初是空的。但是,我正在按照他們編寫的函數結尾處的教程[super viewDidUnload]進行操作。我注意到在dealloc函數中,[super dealloc]會自動寫在最後。爲什麼它不會自動寫入viewDidUnload的末尾?這有什麼不同嗎?它有什麼作用?super viewDidUnload in Cocoa

此外,這是一個可可問題,還是一個Objective-C問題?

+0

Cocoa是用Objective-C編寫的蘋果框架。 Objective-C是編程語言,Cocoa是Apple提供的類的框架。類似於PHP和CakePHP,或者Ruby和Rails。 – jergason 2010-07-22 18:37:47

+0

是啊..我們可以把這個帖子改名嗎? – 2012-07-14 06:13:01

回答

0

在函數結束時調用它。

我在開始時調用過很多雜項錯誤。我發現網上有很多地方討論這個話題,有些人說開始,有些人說最後。在我研究之前,我認爲應該在最後調用它,因爲語言的結構和性質(例如觸摸事件的處理方式)類似的模式。

我的邏輯表明,如果我要調用超,或者有問題的對象的父母,我必須也認爲,家長或超不知道孩子對象在其默認的存在,實施,誰知道它會做什麼。因此,當這種方法超越這個方法時,認爲當將出口和屬性設置爲零時,超級的卸載方法可能會執行某些操作,例如在視圖控制器中卸載視圖,同時這些出口仍然存在。

由於我發現的所有問題和答案,沒有明確的解決方案。蘋果公司並未給出即時答案,但它們提供瞭如何加載和卸載視圖的理解。我放棄了在這個例子上尋找例子,並且我堅持在這個函數結束時調用super的邏輯。

我不會做的是假設我可以猜測在私有API中運行的代碼,除蘋果文檔或蘋果開發人員以外的任何人都會得到正確的答案。不過,這是我根據我所經歷的建議,也許正確的答案是它應該是/或取決於你在方法中做什麼。打開更多的建議。