我在Dropbox-iOS-SDK中使用带有DBRESTClient和DBRestClientDelegate的dropbox API
我的问题是我需要在后台线程上运行这些。
当我调用[restClient loadMetadata]时,我没有得到响应 - restClient:loadedMetadata:除非我从主线程开始调用。
是否有一个简单的解决方法/库可以使用哪个允许线程上的委托响应?我尝试过使用块但没有运气的Dropblocks。
答案 0 :(得分:0)
我注意到"确保从主线程或具有运行循环的线程调用DBRestClient方法。否则,不会调用委托方法。"在Dropbox页面上 https://www.dropbox.com/developers-v1/core/start/ios
我使用了一个runloop,它现在在一个线程上运行
这是使用完成块类似地,您可以使用委托将标志设置为NO
self.inQuery = YES;
[self loadMetaDataWithPath:rootFolder mediaType:@(mediaType) completion:^(BOOL complete) {
self.inQuery = NO;
}];
@autoreleasepool {
do {
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
DDLogError(@"currentRunLoop %@",[NSDate date]);
}while(self.inQuery);
}