所以我一直在尝试设计一种干净的方法来为我的iPhoneLand模型获取数据。我的应用程序的所有数据都来自JSONAPI。
所以现在,当一个VC需要一些模型时,它会执行JSON调用本身(异步),当它接收到数据时,它会构建模型。它可以工作,但我正在尝试一种更干净的方法,DAO可以为我检索信息并以异步方式返回模型。
我最初的想法是为我的DAO构建一个协议,这样VC将实例化一个DAO并使其本身成为委托。当您请求数据[DAOINSTANCE GetAllUsers]时,DAO将执行所有网络请求操作,当它拥有数据时,它将在其委托(VC)上调用一个方法来传递数据。
所以我认为这是一个很酷的解决方案,但是我意识到如果我需要在同一个VC中为不同的目的使用同一个DAO,我的委托方法将不得不根据哪个DAO实例启动请求来分支逻辑。
所以我的第二个想法是能够将“handler”选择器传递给DAO对象一个典型的JavaScript模式。因此,我不说正式的协议,而是说类似于[daoInstance GetAllUsersWithSelector:“ThehandlerFunctionOnMyVC:”]的话,当DAO完成其网络活动时,它会在VC上调用传递的选择器,并将数据传回。
那么我是不是完全走错了方向?似乎是个不错的选择。
任何关于设计这种数据层的指针或文章都是很好的。
谢谢!
鲍勃