2016-09-18 56 views
1

我正在Objective-C應用程序中使用ObjectiveDropboxOfficial框架進行Dropbox集成(由於棄用了v1 dropbox api)。 Framework link使用ObjectiveDropboxOfficial框架獲取用戶信息

我想獲取登錄dropbox用戶信息(電子郵件,名稱等)。這裏是我的代碼:

DropboxClient *client=[DropboxClientsManager authorizedClient]; 
 
    [[client.usersRoutes getCurrentAccount] 
 
    response:^_Nonnull(DBUSERSBasicAccount *response, DBError *dberror) 
 
    { 
 
      // loginLabel.text=[NSString stringWithFormat: @"%@\n%@", account.name, account.email]; 
 
       
 
      return response; 
 
       
 
     } 
 
    }];

此代碼不能正常工作和additionnally導致奇怪的錯誤在Xcode: 的方法定義是:

- (DBRpcTask<DBUSERSBasicAccount *, DBUSERSGetAccountError *> *_Nonnull)  getAccount:(NSString *_Nonnull)accountId;

- (DBRpcTask<TResponse, TError> *_Nonnull)response: 
 
    (void (^_Nonnull)(TResponse _Nullable, TError _Nullable, 
 
         DBError *_Nullable))responseBlock;

我堅持這整整一天,任何幫助,將不勝感激: 1-如何使用框架來獲取用戶的相關信息,或 2 - 是什麼原因造成的錯誤,以及如何應該就是非空方法被調用?

預先感謝您

回答

4

所以終於在掙扎了2天,我發現響應:

DropboxClient *client = [DropboxClientsManager authorizedClient]; 
if(client) 
{ 


[[client.usersRoutes getCurrentAccount] response:^(DBUSERSFullAccount *account, DBNilObject *obj, DBError *error) { 
    if (error != nil) { 
     NSLog(@"Error %@", error.errorContent); 
    } 

    if (account != nil) { 
     NSLog(@"User's name %@", account.name.displayName); 

    } 
    if(self.hud) 
    [self.hud hideAnimated:YES]; 
}]; 

我希望這將節省其他開發人員的精力和心理健康:)

+0

getCurrentAccount永遠不會返回對於我有一個有效的客戶端對象,這是否仍然適合你? – gregyoung14

+0

是的,它的工作原理。您的用戶是否成功登錄?你得到了什麼錯誤? –

+0

結果是authorizedClient未正確設置,現在工作正常!謝謝 – gregyoung14