我在Objective-C应用程序中使用ObjectiveDropboxOfficial框架进行Dropbox集成(由于v1 dropbox api的弃用)。 Framework link
我正在尝试登录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;
}
}];
此代码不起作用,另外还会导致xcode产生奇怪的错误:enter image description here 方法定义是:
- (DBRpcTask<DBUSERSBasicAccount *, DBUSERSGetAccountError *> *_Nonnull) getAccount:(NSString *_Nonnull)accountId;
- (DBRpcTask<TResponse, TError> *_Nonnull)response:
(void (^_Nonnull)(TResponse _Nullable, TError _Nullable,
DBError *_Nullable))responseBlock;
我被困了一整天,任何帮助都会受到赞赏: 1-如何使用框架获取用户信息,或 2-导致错误的原因以及如何调用Nonnull方法?
提前谢谢
答案 0 :(得分: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];
}];
我希望这能挽救另一位开发者的精力和心理健康:)