Dropbox DBRestClient / DBRestClientDelegate在线程上执行

时间:2015-11-02 08:48:53

标签: ios multithreading dropbox dropbox-api

我在Dropbox-iOS-SDK中使用带有DBRESTClient和DBRestClientDelegate的dropbox API

我的问题是我需要在后台线程上运行这些。

当我调用[restClient loadMetadata]时,我没有得到响应 - restClient:loadedMetadata:除非我从主线程开始调用。

是否有一个简单的解决方法/库可以使用哪个允许线程上的委托响应?我尝试过使用块但没有运气的Dropblocks。

1 个答案:

答案 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);
}