2014-03-26 39 views
1

我有一個簡單的免費應用程序,我試圖讓應用程序的用戶將其數據備份到Dropbox以保證安全。重新鏈接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];取消鏈接,然後調用鏈接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} 

如果我然後關閉我的視圖,並再次打開它,它的工作原理。似乎由於某種原因,該調用需要重新加載視圖?

我不確定在這裏發生了什麼?任何幫助指導解決這個問題將不勝感激。

謝謝。

+0

這可能是因爲您在解除鏈接/重新鏈接後仍然使用舊的restClient。您應該清除並重新創建restClient。更多信息:https://forums.dropbox.com/topic.php?id = 94511 – Greg

+0

謝謝 - 我實際上已經嘗試過,它沒有什麼區別。我會再試一次 - 以防萬一我沒有做對。 –

回答

1

這個問題很簡單。

我需要將這些呼叫:

self.restClient = [[DBRestClient alloc] initWithSession:[DBSession sharedSession]]; 
self.restClient.delegate = self; 

從 - (無效)viewDidLoad中來 - (無效)viewDidAppear

由於RESTClient實現成立僅在創建視圖的,它從來都不是重啓。

感謝格雷格 - 這有幫助!