2009-02-28 57 views
2

我不明白在Objective-C和可可中如何使用術語「文檔」。當我構建應用程序時,爲什麼我會有「文檔」?這對我來說毫無意義。我可以有一個像圖像編輯器一樣的應用程序,其中我可以同時打開100張圖像。所以每個圖像都是一個文檔,並有自己的Nib文件?有人可以用人類可以理解的方式解釋這個詞嗎?我認爲最好的例子就是很多。文檔和筆尖文件:「文檔」對蘋果有什麼意義?

回答

4

從我ancient but still mostly relevant Cocoa NSFAQ(不那麼常見問題解答):

Q18 爲什麼我要一個文檔子?

A18 因爲您有一箇中央數據模型需要一個對象來管理它。

更詳細地說,不要總是考慮Document == File。大多數Mac應用程序中的概念文檔可能確實映射到磁盤上的單個文件,但通常也是中心對象(經典MVC設計中的模型)。

如果您使用的是數據庫,Document可能會管理數據庫連接,甚至最終會保存爲保持該連接的文件。

對於您的照片庫,文檔可能是單數,只包含一些設置,或者您可能有多個文檔對應不同的佈局和過濾器,以顯示哪些照片。

沒有理由不能有多個文檔,甚至有數百個打開如果你想要這樣 - 文檔是一種向視圖提供數據的方式,如果你願意,你可以有數百個實例。

1

基於文檔,就Xcode模板而言,本質上是指NSDocument子類。 NSDocument和NSDocumentController提供了一個抽象,使其更容易支持多個文檔。

你是對的,你可以在沒有NSDocument的情況下手工編寫它。但是,NSDocument確實使它更容易一些。

+0

好吧,所以每個Nib文件都是爲一種「文檔」(即單詞文檔,要編輯的圖像或新的計算器實例)製作的? – Thanks 2009-02-28 13:27:47