2014-01-17 100 views
0

我在最後幾天開始學習iOS開發,我不確定如何組織代碼。Ajax請求/數據請求在MVC中的位置在哪裏?

想象一下,一個簡單的博客閱讀器應用程序,我們必須使用API​​來檢索最新的最新帖子。我看到了開發人員將ajax調用放在Controller中的教程和源代碼。這不應該是模型的責任嗎?

對我來說是有意義的創建一個模型類,它的職責是:使Ajax調用

    • 解析響應數據
    • 更新self.data_structure
    • 通知控制器

    數據過濾和數據操作怎麼樣,根據MVC它屬於哪裏?通過數據操縱我的意思是,快速示例:{"Price" : 12, "Amount" : 2},我們可以計算出總金額和它。將它存儲在模型中而不是在Controller中進行存儲和計算是有意義的。

  • 回答

    0

    教程不嚴格遵循MVC。將這些調用放在控制器中是可以的,但不建議將其調用到單獨的模型類中。單獨的模型類應該關閉線程,其completionHandler應該使用NSNotification通知控制器。

    在我平時的代碼中,我有一個單獨的隊列中的呼叫和其完成處理程序調用[self parse Data],其解析數據單獨的隊列。解析完成後,使用NSNotification通知控制器從模型中獲取解析的內容。

    數據操作也應該由模型管理,爲模型提供NSDictionary並讓模型返回計算量。

    +0

    我還注意到,在教程中,一些開發人員傾向於從模型中獲取數據,通常會創建數據,並將NSArray傳遞給UITableView。通過在控制器中設置指向模型的屬性來使用複合設計模式是否可行? –

    +0

    @schemetrical你說的這個模型,它是什麼類的類型? – Pavan

    +0

    @Mário是的,你可以創建它傳遞給UITableView,但它通常在模型中完成以收集數據並將其製作成數組。控制器通常只需要數組並在tableview中循環它。 – Schemetrical