Ios 我可以使用RestKit将网络与映射分开吗?

Ios 我可以使用RestKit将网络与映射分开吗?,ios,objective-c,restkit,Ios,Objective C,Restkit,我正在构建一个使用RESTAPI的iOS应用程序,我计划使用Restkit。 遵循关注点分离的原则,我希望将网络与解析和映射分开,因此在我的体系结构中,我为这三个方面设计了单独的类 然而,Restkit似乎将所有内容捆绑在一起: [[RKObjectManager sharedManager] getObjectsAtPath:@"/v2/venues/search" parameters:queryParams su

我正在构建一个使用RESTAPI的iOS应用程序,我计划使用Restkit。 遵循关注点分离的原则,我希望将网络与解析和映射分开,因此在我的体系结构中,我为这三个方面设计了单独的类

然而,Restkit似乎将所有内容捆绑在一起:

[[RKObjectManager sharedManager] getObjectsAtPath:@"/v2/venues/search"
                  parameters:queryParams
                     success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
                                 _venues = mappingResult.array;
                                 [self.tableView reloadData];
                             }
                     failure:^(RKObjectRequestOperation *operation, NSError *error) {
                                 NSLog(@"What do you mean by 'there is no coffee?': %@", error);
                             }];
来自raywenderlich.com上的教程

在使用Restkit时,您知道一种有效地将网络与映射分离的方法吗

感谢

您的RKObjectManager实例处理映射的配置并执行管理网络和映射操作。RestKit的任何其他用法也是如此。但是,这并不意味着您需要在一个地方使用RKObjectManager。您可以有一个类,该类接受RKObjectManager作为参数并设置映射信息,可能正在从模型类请求每个对象的映射,以便该对象只知道路径信息。然后,您可以使用另一个类,该类知道针对特定应用程序问题域数据需求查询哪些路径,并触发网络通信


实际上,您可以决定如何在整个体系结构中分割逻辑。

有许多技术可用于在另一个类上调用方法—委托模式、块、,NSNotificationCenter—最后一个可能最适合处理您的数据模型并在需要时调用网络代码的单例。您能否举例说明如何在实践中做到这一点?正如您在我的示例中看到的,映射和网络是一起完成的。如何将它们分开?问题中的示例代码只是询问路径中的内容。它对网络或映射一无所知。该请求可以发送到本地文件,也可以从本地数据库返回。