Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
围绕用于iPhone开发的JSON API设计DAO_Iphone_Objective C_Dao_Data Layers - Fatal编程技术网

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

围绕用于iPhone开发的JSON API设计DAO,iphone,objective-c,dao,data-layers,Iphone,Objective C,Dao,Data Layers,因此,我一直在尝试设计一种干净的方式,在iphoneland中为我的模型获取数据。我的应用程序的所有数据都来自JSON API 所以现在,当VC需要一些模型时,它会自己调用JSON(异步),当它接收到数据时,就会构建模型。这是可行的,但我正试图想出一种更干净的方法,让DAO以异步方式为我检索信息并返回模型 我最初的想法是为我的DAO构建一个协议,这样VC将实例化一个DAO并使自己成为委托。当您请求数据[DAO实例getAllUsers]时,DAO将执行所有网络请求工作,然后当它拥有数据时,它将调

因此,我一直在尝试设计一种干净的方式,在iphoneland中为我的模型获取数据。我的应用程序的所有数据都来自JSON API

所以现在,当VC需要一些模型时,它会自己调用JSON(异步),当它接收到数据时,就会构建模型。这是可行的,但我正试图想出一种更干净的方法,让DAO以异步方式为我检索信息并返回模型

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

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

因此,我的第二个想法是能够将“handler”选择器传递给DAO对象,即典型的javascript模式。因此,我会说类似于[DAO实例getAllUsersWithSelector:“TheHandlerFunctionOnMyVC:”]的话,而不是一个官方协议,然后当DAO完成其网络活动时,它会调用VC上传递的选择器,并将数据传递回

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

任何关于设计这种数据层的建议或文章都是很好的

谢谢!
Bob

当您需要回调并且不想在处理程序方法调用方上进行分支时,传递a目标(这里是您的VC)和选择器(处理程序方法)是非常常见的。这称为目标选择器模式

除此之外,您可能还想查看有关此产品可能设计的详细信息和框架

此外,著名的框架可能提供了一个很好的洞察力