1

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

[[[DBAccountManager sharedManager] linkedAccount] unlink];

iPhone 4S 大约需要 1 秒,模拟器稍微长一点,3GS 相当长,但是对于 iPhone 5,它看起来根本不工作!这可能是内存问题吗?我在这里错过了什么吗?

感谢您的建议!

伊森

4

2 回答 2

2

来自 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 通信。

于 2013-06-05T11:10:55.023 回答
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;
    }
于 2015-03-22T12:41:48.580 回答