File's Owner


在 iPhone app project 裡面 Resource 區,都會看到 Nib 這樣的檔案,而每次開發時候將它用 Interface Builder 打開,在 Window 區就會看到固定有 File's Owner,而這和 File's Owner 又有什麼關係呢?

一份 Nib 檔案會以 dynamically 動態的方式在 Run-time 期間載入,回應使用者給與的事件,類似按下按鈕、做選單等等。在 Nib 檔案裡面的 File's Owner 是一個物件用來做新的 Nib 和舊的已經 app 產生的部份做溝通,像似 App 已經有建立好 instance of an object,希望可以傳進去檔案,需要知道 IBOutlet 是接到表單上的哪個欄位。所以 File's Owner 在 Apple document 上比喻為 proxy。

在 Design Pattern 裡面,Proxy 是這樣定義:"Provide a surrogate or placeholder for another object to control access to it." 會有 Proxy 這樣出現,一個大的好處是控制 access 到 object 時候,根據需要時機,再來建立和初始化,而且那種越貴重的 object 越建議這樣,當需要時候才建立。

Nib 檔案是用像似解凍準備執行樣子,這樣對於 App 可以更模組化降低記憶體使用。 Nib 檔案可以根據需要用到裡面物件時候,再被載入到記憶體當中。當 Nib 檔案需要被解凍,需要一個 pointer 對應到 object,而就是 File's owner。File's owner 會允許授權裡面的 object 和已經存在的 object 做串連。所以某方面 File's owner 扮演了新的 object 和舊的 object 之間的橋梁。

Comments

Post a Comment