我有一个 Web API 类,用于处理我的项目中的所有网络通信和下载。我的项目包含 Collection View 和表格 View ,下载完成后它们就会更新。
我处理这个问题的方式感觉很丑陋。
我将对 Collection View / TableView 的引用传递给 WepAPI.m 中的方法。 每当下载完成时,我都会使用引用将新对象插入到我的 View 中并发送重新加载消息。
这是要走的路吗?我应该使用 KVO 或其他方法吗?
我正在使用AFNetworking框架来处理我的网络通信
最佳答案
我会使用 block 。
例如:(在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
}
这可确保您所做的 View 更改在相应的 View Controller 中完成。
关于ios - WebAPI 返回时更新内容的适当方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17648183/