2012-12-31 16 views
4

我已完成前兩個在線教程「您的第一個iOS應用程序」和「您的第二個iOS應用程序」。後者使用數據控制器類,如here所示。iOS /可可數據控制器類 - 這是標準做法嗎?

我現在正在通過「iOS編程:大書呆子牧場指南第3版」。然而,它似乎沒有提及數據控制器類,並且似乎將方法放入模型類本身(即,將其放入模型類本身中(即MyClass.m而不是MyClassDataController.m))。

我相信所有人最終都會變得清晰,但有人能給我一個更廣泛的參照系嗎?數據控制器類的使用只是一個文體決定?我看過其他幾本書,它們似乎也不涉及數據控制器。

+0

直到它工作,不要過多擔心結構:)如果你對模型和演示文稿有很好的分離類,而且你編寫的代碼有意義,那麼你就在正確的軌道上。隨着您越來越有經驗,您最終會認識到常見模式和最佳實踐。只是一點時間和精力,沒有其他:) – 2012-12-31 23:48:09

+0

由於我沒有這本書,我不能說這本書是誤導你,還是隻是採取將在後來擴展的教學快捷方式。但是我發現這本書有一個論壇(http://forums.bignerdranch.com/viewforum.php?f=211),Joe Conway(其中一位作者)似乎經常在那裏發帖。所以你可能想嘗試在那裏問。 –

+0

我現在明白了。「我的第二個iOS應用程序」中的數據控制器類只是數組對象(可變)的一個類,它持有指向所有MyClass對象(實際上是BirdWatching)的指針。 DataContoller這個詞聽起來和ViewController非常相似,我認爲這是一個比實際更加官方的野獸!謝謝,所有。 – Nick

回答

6

這是一個很好的問題!說實話,這兩種方法都可以接受。 Aaron Hillegrass(他是BNR書籍的合着者)是一位非常受人尊敬的開發人員(他甚至曾經培訓Apple工程師),顯然你看到的Apple樣本代碼是「從馬的嘴裏',可以這麼說。

爲什麼蘋果建議您在他們的應用程序中使用單獨的數據控制器?那麼,如果你的數據控制器符合相關的協議,你可以直接插入到UITableView之類的東西中。如果你正在編寫一個通用的iPad/iPhone應用程序,這兩個應用程序對這兩個設備有不同的視圖,那麼這可能非常有用。如果您正在使用故事板,這也非常有用。正如蘋果所說:

數據控制器類允許應用程序中的其他對象訪問對象,而無需瞭解數據模型如何實現。

但這可能是矯枉過正:有大量的應用程序,使用這種模式,他們拋出的邏輯到視圖控制器本身。兩者都有優點和缺點。換句話說:當你瀏覽蘋果在他們的開發者網站上放置的示例代碼時,你會發現很多應用程序不符合遵循Apple在'Your Second iOS App'教程中建議的模式!

+0

感謝您的幫助,您的保證是不是一個荒謬的查詢:)它可能與iPhone和iPad視圖的各種需求潛在凝膠的事實是有用的知道。 – Nick

+0

另一個用例是支持OS X和iOS,只需對數據管理代碼進行最小限度的更改,但這不是一個常見的要求。 – lxt

+0

是否有任何具體的例子,你想分享..請 –

1

把它看作是從控制器和視圖中分離數據(模型)的中間方法。

一個很好的練習,一旦你得到更進一步的(優秀的,恕我直言)BNR書是用核心數據而不是數據控制器重寫觀鳥示例。

這並沒有太多的工作 - (我已經完成了),如果你真的嘗試使用它來做這麼簡單的事情,你會更好地理解Core Data。

祝你好運。

+0

不錯的建議。我可以這麼做!謝謝你的幫助。 – Nick