SFUserAccount всегда ноль

Я обновил свой salesforcesdk-ios до новой версии 5.3.0. После успешного входа в систему я установил все эти значения в этом делегате - oauthCoordinatorDidAuthenticate: authInfo: вот так,

- (void) oauthCoordinatorDidAuthenticate: (SFOAuthCoordinator *) coordinator authInfo:(SFOAuthInfo *)info {

    [SFAuthenticationManager sharedManager].coordinator = coordinator;
    [[SFAuthenticationManager sharedManager] coordinator].credentials = coordinator.credentials;
    [[SFUserAccountManager sharedInstance] applyCredentials:coordinator.credentials];
}

Когда я пытаюсь проверить для освежающего маркера currentUser равен nil в - (void)send:(SFRestRequest *) делегат запроса:(id) делегат shouldRetry:(BOOL)shouldRetry и всегда загружает страницу входа в систему salesforce вместо отправки запроса в Salesforce.

// Если нет подтверждаемых учетных данных, войдите перед отправкой. SFUserAccount * user = [SFUserAccountManager sharedInstance].currentUser;

пользователь всегда ноль. Как правильно настроить учетную запись пользователя? Спасибо!

2 ответа

Я нашел ответ. Они ожидают явной установки currentUser в более новой версии iOS SDK. У меня есть пользовательский экран входа в систему с переключателем между песочницей и производством. Теперь я настраиваю учетную запись пользователя таким способом:

   [[SFAuthenticationManager sharedManager] loginWithCompletion:^(SFOAuthInfo *authInfo,SFUserAccount *userAccount) {
        [SFSDKCoreLogger i:[self class] format:@"Authentication (%@) succeeded.  Launch completed.", authInfo.authTypeDescription];
        [SFUserAccountManager sharedInstance].currentUser = userAccount;
        [SFSecurityLockout setupTimer];
        [SFSecurityLockout startActivityMonitoring];
        s_loggedIn = YES;
    } failure:^(SFOAuthInfo *authInfo, NSError *authError) {
        [SFSDKCoreLogger e:[self class] format:@"Authentication (%@) failed: %@.", (authInfo.authType == SFOAuthTypeUserAgent ? @"User Agent" : @"Refresh"), [authError localizedDescription]];
    }];

Во-первых, я думаю, вы можете проверить, что делегат oauthCoordinatorDidAuthenticate:authInfo: работает. лайк:

- (void) oauthCoordinatorDidAuthenticate: (SFOAuthCoordinator *) coordinator authInfo:(SFOAuthInfo *)info {
print("delegate is worked")
[SFAuthenticationManager sharedManager].coordinator = coordinator;
[[SFAuthenticationManager sharedManager] coordinator].credentials = coordinator.credentials;
[[SFUserAccountManager sharedInstance] applyCredentials:coordinator.credentials];

}

Это может привести к тому, что user is nil, когда делегат не работает.

Другие вопросы по тегам