我有一个Web类,它处理项目中的所有网络通信和下载。我的项目包含集合视图和表视图,只要下载完成,就会更新它们。
我处理这件事的方式很难看。
我将对集合视图/表视图的引用传递给WepAPI.m中的方法。无论何时完成下载,我都会使用这些引用将新对象插入到视图中,并发送重新加载消息。
这是该走的路吗?我是否应该使用、KVO、或其他方法来代替?
我正在使用AFNetworking框架来处理我的网络通信
发布于 2013-07-15 06:56:17
我会用积木。
例如:( 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
}
这将确保在其相应的视图控制器中完成您所做的视图更改。
发布于 2013-07-15 06:56:13
一个简单的模式应该是使用两个单子:
然后,您可以使用KVO (或NSNotifications)侦听DataManager单例的任何更新。
这种方法非常简单,并为所涉及的每个组件提供了相当多的可重用性。
https://stackoverflow.com/questions/17648183
复制相似问题