私はiOS6で新しいソーシャルフレームワークを実装しようとしています.2つの奇妙な問題を除いて、それを機能させようとしています. 興味のあるサービス (FaceBook など) を有効にしていれば、問題なく動作します。ただし、アカウントが設定パネルから削除された場合 (一貫性を保つために FaceBook としましょう)、シミュレーターとデバイスで動作が異なり、イライラさせられます。
ビューコントローラーの関連コードは次のとおりです。
//Method for FaceBook
- (IBAction)doFacebook:(id)sender{
//check to see if facebook account exists
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
// Create the view controller defined in the .h file
fb=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
// make the default string
NSString *FBString= [NSString
stringWithFormat:@"%@\r via #GibberishGenerator", gibText.text];
[fb setInitialText:FBString];
// show the controller
[self presentViewController:fb animated:YES completion:nil];
}
}
そして、上記のメソッドを起動したときの奇妙な動作は次のとおりです。
シミュレーター (バージョン 6.0 (358.4 ) ) で、「設定」ボタンと「キャンセル」ボタンを使用して faceBook アカウントを設定していないことを知らせるダイアログが表示されます。設定パネルへ。
6.01 を実行している私のiPhone 4s では、メソッドをトリガーするボタンを押しても...何も起こりません。つまり、FaceBook アカウントを設定する必要があることを知らせるダイアログは表示されません。
よろしくお願いします。
わかりました...修正は次のとおりです。
これは、user1734802 の有益なコメントに基づく私の新しい実装です。
//Method for FaceBook
- (IBAction)doFacebook:(id)sender{
// Create the view controller defined in the .h file
fb=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
// make the default string
NSString *FBString= [NSString
stringWithFormat:@"%@\r via #GibberishGenerator", gibText.text];
[fb setInitialText:FBString];
// show the controller
[self presentViewController:fb animated:YES completion:nil];
}
ある時点で私は期待しています
[SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
実際に正しく動作するように (自動ダイアログをトリガーし、設定に移動します)、コードで実際にコメントアウトしただけです。