我正在使用Dropbox来同步我的应用中的文件。尝试取消帐户与Dropbox的关联时,请使用以下语句:
[[[DBAccountManager sharedManager] linkedAccount] unlink];
iPhone 4S需要大约1秒钟,模拟器需要更长时间,3GS需要很长时间,但对于iPhone 5而言,它看起来根本不起作用!这可能是一个记忆问题吗?我在这里错过了什么吗?感谢您的建议!
探
答案 0 :(得分:2)
。只有在完成同步/下载后,取消链接才会完成。
使用GCD对我有用。
- (void)dropboxLogout {
self.isLogingOut = YES;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
[[[DBAccountManager sharedManager] linkedAccount] unlink];
self.isLogingOut = NO;
});
}
我使用isLogingOut
标记阻止我的应用在取消链接进行时与dropbox api进一步通信。
答案 1 :(得分:0)
我使用此代码基于最新的Dropbox SDK:
- (IBAction)unlinkDropbox:(UIButton *)sender {
DBAccount *account = [[DBAccountManager sharedManager] linkedAccount];
if (account) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
[account unlink];
// Shutdown and stop listening for changes to the datastores
[[DBDatastoreManager sharedManager] shutDown];
[[DBDatastoreManager sharedManager] removeObserver:self];
// Use local datastores
[DBDatastoreManager setSharedManager:[DBDatastoreManager localManagerForAccountManager:[DBAccountManager sharedManager]]];
});
self.isLinked = NO;
}