代码之家  ›  专栏  ›  技术社区  ›  Bob Spryn

围绕用于iPhone开发的JSON API设计DAOS

  •  1
  • Bob Spryn  · 技术社区  · 16 年前

    所以我一直在尝试设计一种干净的方法来为我的iPhoneLand模型获取数据。我的应用程序的所有数据都来自JSONAPI。

    所以现在,当一个VC需要一些模型时,它会执行JSON调用本身(异步),当它接收到数据时,它会构建模型。它可以工作,但我正在尝试一种更干净的方法,DAO可以为我检索信息并以异步方式返回模型。

    我最初的想法是为我的DAO构建一个协议,这样VC将实例化一个DAO并使其本身成为委托。当您请求数据[DAOINSTANCE GetAllUsers]时,DAO将执行所有网络请求操作,当它拥有数据时,它将在其委托(VC)上调用一个方法来传递数据。

    所以我认为这是一个很酷的解决方案,但是我意识到如果我需要在同一个VC中为不同的目的使用同一个DAO,我的委托方法将不得不根据哪个DAO实例启动请求来分支逻辑。

    所以我的第二个想法是能够将“handler”选择器传递给DAO对象一个典型的JavaScript模式。因此,我不说正式的协议,而是说类似于[daoInstance GetAllUsersWithSelector:“ThehandlerFunctionOnMyVC:”]的话,当DAO完成其网络活动时,它会在VC上调用传递的选择器,并将数据传回。

    那么我是不是完全走错了方向?似乎是个不错的选择。

    任何关于设计这种数据层的指针或文章都是很好的。

    谢谢! 鲍勃

    1 回复  |  直到 16 年前
        1
  •  2
  •   eploko    16 年前

    当您需要回调而不希望在handler方法调用方上进行分支时,传递a目标(这里是您的vc)和选择器(handler方法)是非常常见的。这称为目标选择器模式。

    除此之外,您可能还想查看 RestfulCoreData 和 CoreResource 可能的设计框架。

    也是著名的 ObjectiveResource 框架可以提供很好的洞察力。