Pages

Thursday, December 23, 2010

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 之間的橋梁。

1 comment: