WebAPI返回时更新内容的适当方法

时间:2013-07-15 06:44:53

标签: ios objective-c afnetworking

我有一个Web API类,可以处理项目中的所有网络通信和下载。我的项目包含集合视图和表视图,每当下载完成时都会更新。

我处理这件事的方式感觉很难看。

我将对集合视图/表视图的引用传递给 WepAPI.m 中的方法。 每当下载完成时,我都会使用引用将新对象插入到我的视图中并发送重新加载消息。

这是要走的路吗?我应该使用 KVO 或其他方法吗?

我正在使用 AFNetworking 框架来处理我的网络通讯

2 个答案:

答案 0 :(得分:2)

我会使用积木。

例如:(在WebAPI.h中)

typedef void (^SomeStuffBlock)(id someStuff);
- (void)getSomeStuffWithCompletion: (SomeStuffBlock)completion;

使用单例使下载器保留在内存中。 (把它放在你的WebAPI.m中)

+ (id)sharedInstance {
static dispatch_once_t once;
static id sharedInstance;
dispatch_once(&once, ^{
    sharedInstance = [[self alloc] init];
});
return sharedInstance;

}

通话就像这样:

[[WebAPI sharedInstance] getSomeStuffWithCompletion: ^ (id someStuff) {
    //Make changes to your views here
}

这可确保您在相应的视图控制器中完成所做的视图更改。

答案 1 :(得分:0)

一个简单的模式应该是使用两个单身人士:

  • 一个ConnectionManager,它处理auth,timeout,parsing,
  • 一个DataManager,它要求ConnectionManager获取端点并存储已解析的结果。

然后,您可以使用KVO(或NSNotifications)收听DataManager单例的任何更新。

这种做事方式很简单,并且为每个相关组件提供了相当多的可重用性。