我希望能够在不阻塞 UI 的情况下发送数据。这些文件非常大,因此同步发送它们不是一种选择。
我有一个类实现了通过 Apache Thrift 发送数据的所有方法。
我见过的所有异步请求都使用 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];
});
根据您的需要,您可以使用全局队列(这是一个“并发”队列), 或创建您自己的“串行”队列。
关于objective-c - Objective C 后台的异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18000740/