我目前正在开发一个iOS应用程序,它从Dropbox获取音乐文件的可流式网址并在设备上播放。 当用户点击一首歌曲时,它会打开一个视图控制器,在那里,我想要有下载文件的选项。所以我有一个IBAction:
- (IBAction)availableOfflinePressed:(id)sender {
NSString *trackPath = sharedApp.trackTitle;
NSLog(@"Available offline pressed for %@", trackName);
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Started downloading...");
[self.restClient loadFile:trackPath intoPath:trackPath];
});
}
现在,即使它在应用程序日志中抛出“已开始下载...”,该文件实际上也从未下载过。我知道dropbox sdk rest客户端在后台不执行函数,这就是我在主线程上使用GCD的原因。
那么,你能帮助我吗?我错过了什么吗?
提前感谢任何帮助
答案 0 :(得分:0)
原来这是一个非常愚蠢的答案! restClient为nil,未在特定视图控制器中正确设置,因此无法触发Dropbox委托。
实际上,需要的是像你在AppDelegate或其他任何事情中那样初始化restClient,然后在特定视图控制器的self.restClient.delegate=self;
函数中设置viewDidLoad()
。
感谢大家的回复! 快乐的编码!