ユーザーがiPhone(iOS5以降)で設定したTwitterアカウントから選択する方法を実装しようとしています。ユーザー名をUIActionSheetに表示することはできますが、何らかの理由で、メソッドが呼び出されてからUIActionSheetが表示されるまでに約5秒かかります。
Twitterアカウントのリストを取得するのに時間がかかったせいかと思いましたが、私のログにはすぐに表示されるので、そうではありません。
何か案は?
- (void)TwitterSwitch {
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
// Create an account type that ensures Twitter accounts are retrieved.
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
NSMutableArray *buttonsArray = [NSMutableArray array];
// Request access from the user to use their Twitter accounts.
[accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
// Get the list of Twitter accounts.
NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];
NSLog(@"%@", accountsArray);
[accountsArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
[buttonsArray addObject:((ACAccount*)obj).username];
}];
NSLog(@"%@", buttonsArray);
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
for( NSString *title in buttonsArray)
[actionSheet addButtonWithTitle:title];
[actionSheet addButtonWithTitle:@"Cancel"];
actionSheet.cancelButtonIndex = actionSheet.numberOfButtons-1;
[actionSheet showFromTabBar:self.tabBarController.tabBar];
}];
}