我希望能够在不阻塞UI的情况下发送数据。这些文件相当大,因此不能同步发送它们。
我有一个类,它实现了通过ApacheThrift发送数据的所有方法。
我看到的所有异步请求都使用NSURLRequest和NSURLConnection,但对于我的应用程序,我希望使用我的类。
基本上,我想异步调用这个方法:
- (void)syncLocalData {
Manager *stateManager = [[Manager alloc] init];
[stateManager readDirectory];
}
在readDirectory中,如果有文件,我会遍历设备目录并发送数据。
GCD(Grand Central Dispatch)提供易于使用的异步执行代码功能在后台线程上:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[yourInstance syncLocalData];
});
根据您的需要,您可以使用全局队列(这是一个"并发"队列),或者创建自己的"串行"队列。