UIActionSheet をプルアップして、現在 Twitter の設定にサインインしているすべてのアカウントを表示しようとしています。タイプが Twitter に一致するすべてのアカウントの NSArray を取得し、次のコードを実行します。
UIActionSheet *chooseaccount = [[UIActionSheet alloc]initWithTitle:@"Choose Account" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles: nil];
for (int i = 0; i < [arrayOfAccounts count]--; i++) {
[chooseaccount addButtonWithTitle:[arrayOfAccounts objectAtIndex:i]];
}
[chooseaccount addButtonWithTitle:@"Cancel"];
chooseaccount.cancelButtonIndex = arrayOfAccounts.count;
chooseaccount showInView:self.tabBarController.view];
ただし、「「読み取り専用」への割り当ては、目的の c メッセージの結果を返すことはできません」というエラーが表示されます
UIActionSheet に Twitter アカウントのすべての UserNames を表示するための提案はありますか?
更新:
いくつかの提案を行った後、コードを次のように変更しました。
-(void)twitteraccess {
ACAccountStore *account = [[ACAccountStore alloc] init];
ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier:
ACAccountTypeIdentifierTwitter];
[account requestAccessToAccountsWithType:accountType options:nil
completion:^(BOOL granted, NSError *error)
{
if (granted == YES)
{
NSLog(@"Granted");
NSArray *arrayOfAccounts = [account
accountsWithAccountType:accountType];
if ([arrayOfAccounts count] > 0)
{
NSLog(@"%i", [arrayOfAccounts count]);
if ([arrayOfAccounts count] > 1) {
NSLog(@"Greaterthan1");
UIActionSheet *chooseaccount = [[UIActionSheet alloc]initWithTitle:@"Choose Account" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles: nil];
for (int i = 0; i < [arrayOfAccounts count]; i++) {
ACAccount * account = [arrayOfAccounts objectAtIndex:i];
[chooseaccount addButtonWithTitle:account.username];
NSLog(@"%@", account.username);
}
[chooseaccount addButtonWithTitle:@"Cancel"];
chooseaccount.cancelButtonIndex = arrayOfAccounts.count;
[chooseaccount showInView:self.tabBarController.view];
}
else {
}
}
}
else {
if(error.code == 6){
[self performSelectorOnMainThread:@selector(alertmessagetwitter)
withObject:nil
waitUntilDone:YES]; }
}
}];
}
アクション シートは表示されますが、表示されるまでに約 25 秒かかります。