我正在使用 Dropbox 在我的应用程序中同步文件。尝试将帐户与 Dropbox 取消关联时,请使用以下语句:
[[[DBAccountManager sharedManager] linkedAccount] unlink];
iPhone 4S 大约需要 1 秒,模拟器稍微长一点,3GS 相当长,但是对于 iPhone 5,它看起来根本不工作!这可能是内存问题吗?我在这里错过了什么吗?
感谢您的建议!
伊森
来自 Dropbox论坛。只有在同步/下载完成后才能完成取消链接。
使用 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 通信。
我使用基于最新 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;
}