Take щебет счет, например.
Как насчет добавления следующей функции, как показано ниже? Вы можете снова получить аккаунт после изменения информации об учетной записи.
- (void)checkTwitterAccountUpdate
{
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
NSArray *accounts = [accountStore accountsWithAccountType:accountType];
ACAccount *twitterAccount = [accounts lastObject];
NSString *localTwitterName = [[NSUserDefaults standardUserDefaults] objectForKey:@"kTwitterKey"];
if([localTwitterName length] > 0)
{
if(![twitterAccount.username isEqualToString:localTwitterName])
{
NSLog(@"Account did change");
}
}
else
{
[accountStore requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error) {
if(granted) {
NSArray *accounts = [accountStore accountsWithAccountType:accountType];
ACAccount *twitterAccount = [accounts lastObject];
NSLog(@"%@", twitterAccount.username);
[[NSUserDefaults standardUserDefaults] setObject:twitterAccount.username forKey:@"kTwitterKey"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
}];
}
}
в
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[self checkTwitterAccountUpdate];
}
Это не работает для меня. Можете ли вы опубликовать весь код. Я попытался добавить NSNotification, но он не срабатывает, когда я удаляю учетные записи в настройках> FB/Twitter. –
Обновлен код. Когда ваше приложение будет задумано, чтобы пользователь мог изменять настройки, изменение доступа к данной социальной учетной записи автоматически инициирует это событие и выполняет любой код до возобновления вашего приложения. – gro
Я пробовал это, но не работал для меня. Просто установите NSLog внутри refreshAccounts, но не запускается. Могу ли я что-то упустить? –