Когда мы используем учетную запись saveAccount:(ACAccount *) класса ACAccountStore?
Пожалуйста, уточните мне, когда мы используем этот метод?- (void)saveAccount:(ACAccount *)account withCompletionHandler:(ACAccountStoreSaveCompletionHandler)completionHandler
Как я знаю, мы получаем доступ к учетной записи через OAuth и не получаем учетные данные пользователя. Итак, как мы можем создать учетную запись? Я обнаружил, что ACAccount имеет единственный метод создания:- (id)initWithAccountType:(ACAccountType *)type
Что на самом деле происходит, когда мы создаем аккаунт таким образом? И можем ли мы сохранить его сейчас?
1 ответ
Хорошо, наконец я нашел информацию об этом. Рассмотрим следующий сценарий: наше приложение уже авторизовано пользователем, и у нас есть как токен доступа, так и секрет. Теперь мы хотим поддержать новые функции iOS 6 и создать учетную запись Twitter (например) в настройках. Для этого нам нужно перенести эти токены в центральное хранилище учетных записей. Вот как:
- (void)storeAccountWithAccessToken:(NSString *)token secret:(NSString *)secret {
//We start creating an account by creating the credentials object
ACAccountCredential *credential = [[ACAccountCredential alloc] initWithOAuthToken:token tokenSecret:secret];
ACAccountType *twitterAcctType =[self.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
ACAccount *newAccount = [[ACAccount alloc] initWithAccountType:twitterAcctType];
//Here we assign credentials and now can save account
newAccount.credential = credential;
[self.accountStore saveAccount:newAccount withCompletionHandler:^(BOOL success, NSError *error) {
if (success) {
NSLog(@"the account was saved!");
}
else {
//Handle error here
}
}];
}
Подробнее об этом читайте здесь, как перенести токены