Facebookにログインしていないのにログインしていると判断される
Social.framework
を使ってFacebook連携を実装したのですが、おかしな挙動をします。
Facebookにログインしていない状態で投稿ボタンを押すと、「ログインしていません」というアラートが出てきて「OK」を押すと下記のコードのprintln("成功")
が処理されました。
ログインができてないのにFacebookへの投稿処理がtrue
で返ってくるので、おかしな挙動になってしまいます。そもそもなぜFacebookにログインしてないのにif SLComposeViewController.isAvailableForServiceType(SLServiceTypeFacebook)
の行でtrue
が返って以下が処理されるのでしょうか?試しにTwitterをログアウトしてisAvailableForServiceType(SLServiceTypeTwitter)
に変更して実行してみると、println("not login")
の行が実行されました。なぜFacebookのみでログインしていないのにログインしていると判断されるのでしょうか?
@IBAction func post(sender: AnyObject) {
if SLComposeViewController.isAvailableForServiceType(SLServiceTypeFacebook) {
let composeVC = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
let handler: SLComposeViewControllerCompletionHandler = { result in
if result == SLComposeViewControllerResult.Done {
println("成功")
} else if result == SLComposeViewControllerResult.Cancelled {
println("失敗")
}
}
composeVC.setInitialText("test")
composeVC.completionHandler = handler
presentViewController(composeVC, animated: true, completion: nil)
} else {
println("not login")
}
}