取消将帐户与iOS中的Dropbox关联

时间:2013-06-05 08:21:57

标签: ios dropbox

我正在使用Dropbox来同步我的应用中的文件。尝试取消帐户与Dropbox的关联时,请使用以下语句:

[[[DBAccountManager sharedManager] linkedAccount] unlink];

iPhone 4S需要大约1秒钟,模拟器需要更长时间,3GS需要很长时间,但对于iPhone 5而言,它看起来根本不起作用!这可能是一个记忆问题吗?我在这里错过了什么吗?

感谢您的建议!

2 个答案:

答案 0 :(得分:2)

来自保管箱forum

。只有在完成同步/下载后,取消链接才会完成。

使用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;
    }