Twitterに投稿するアプリ(iOS5+)を開発しています。システムに Twitter アカウントが設定されているかどうかを確認して、アカウントが利用可能な場合は Twitter からログインできるようにします[設定] に移動して、システムに Twitter アカウントを追加します (ただし、ユーザーをアプリに戻すことができないため、この方法は好きではありません)。
このアプローチの唯一の問題は、シミュレーターで使用しているアカウントの数を確認できることです
ACAccountType *twitterAccountType = [_accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
// Get the list of Twitter accounts and checks
NSArray *accountsArray = [_accountStore accountsWithAccountType:twitterAccountType];
同じコードは実際のデバイスでは機能せず、配列が空であることを常に報告します (アプリが Twitter を使用する許可を既に与えているアカウントのみを返すため)。
2 番目のアプローチは、特に -ACAccountStore requestAccessToAccountsWithType:withCompletionHandler: メソッドの完了ハンドラーを使用することです。
// We can user the twitter iOS accounts, but we use a custom view to post the content
[_accountStore requestAccessToAccountsWithType:twitterAccountType withCompletionHandler:^(BOOL granted, NSError *error) {
if (granted)
{
// POST
}
else
{
// error?
}
ただし、2 番目のケースでは、次のいずれかの場合、エラーは常に nil です。
したがって、基本的に2つのケースを区別することはできません。したがって、ユーザーにログインするためのビューを提示する必要があるか(2番目のケース)、ログインしたくないために失敗するかはわかりません.
洞察はありますか?回避策はありますか?