目标C中后台的异步方法



我希望能够在不阻塞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];
});

根据您的需要,您可以使用全局队列(这是一个"并发"队列),或者创建自己的"串行"队列。

最新更新