我有一个简单的免费应用程序,我试图让该应用程序的用户将他们的数据备份到 Dropbox 以便安全保存。
这一切都很好,直到我取消关联帐户然后重新关联该帐户。然后我的下一个调用失败。
这里是调用:
- (IBAction)linkToDropBox:(id)sender {
if (![[DBSession sharedSession] isLinked]) {
[[DBSession sharedSession] linkFromController:self];
}
[self checkForBackups];
}
- (void) checkForBackups {
//Determine if backup exists
if ([[DBSession sharedSession] isLinked]) {
[self.restClient loadMetadata:@"/"];
}
}
这是第一次执行它没有问题,但是当我第一次通过调用取消链接时 [[DBSession sharedSession] unlinkAll];
然后调用 link toDropBox 链接成功,loadMetada 失败.
2014-03-26 13:01:24.065 appName[3519:60b] App linked successfully!
2014-03-26 13:01:24.626 appName[3519:60b] [WARNING] DropboxSDK: error making request to /1/metadata/sandbox - (403) Parameter not found: oauth_token
2014-03-26 13:01:24.628 appName[3519:60b] Error loading metadata: Error Domain=dropbox.com Code=403 "The operation couldn’t be completed. (dropbox.com error 403.)" UserInfo=0xb900290 {path=/, error=Parameter not found: oauth_token}
如果我然后关闭我的 View 并再次打开它,它就会起作用。似乎由于某种原因调用需要重新加载 View ?
我不确定这里发生了什么?任何有关解决此问题的方向的帮助将不胜感激。
谢谢。
最佳答案
问题很简单。
我需要转移这些电话:
self.restClient = [[DBRestClient alloc] initWithSession:[DBSession sharedSession]];
self.restClient.delegate = self;
从 -(void)viewDidLoad 到 -(void)viewDidAppear
由于 restClient 仅在创建 View 时设置,因此从未重置。
谢谢 Greg - 这很有帮助!
关于ios - 重新链接保管箱帐户的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22670854/