[iosアプリ開発] Fabricを用いたtwitterでログイン時のエラー:This method can return unexpected results based on who is logged in or logged out. It is recommended that users use -[TWTRAPIClient initWithUserID:] for more explicit control over which user is making requests

xcode 7.2.1
swift 2

Fabricを利用したtwitterログインを実装し、ログイン情報を取得するときに以下のようなエラーが発生。

-[Twitter APIClient] will soon be deprecated. This method can return unexpected results based on who is logged in or logged out. It is recommended that users use -[TWTRAPIClient initWithUserID:] for more explicit control over which user is making requests.

 

言っていることとしては、もうすぐ[Twitter APIClient]があんまり推奨じゃなくなるから[TWTRAPIClient initWithUserID:]使ったほうがいいよーとのこと。

 

このエラーが吐き出された段階で、twitter Loginの実装は以下のようにしていました。


Twitter.sharedInstance().logInWithCompletion {
                (session, error) -> Void in
                if (session != nil) {
                    print("signed in user name \(session!.userName)");
                    self.UserName = session!.userName
                    let client:TWTRAPIClient = Twitter.sharedInstance().APIClient
                        client.loadUserWithID(session!.userID){ user, error in
                            self.ScreenName = user!.screenName
                            self.UserName = user!.name
                            self.UserId = user!.userID
                            self.LoginType = "twitter"
                            self.ProfileImgPath = user!.profileImageURL
                            self.saveTwitterDatatoCore()
                        }
                } else {
                    print("Error:\(error!.localizedDescription)");
                }
            }

そこで、clientの部分を以下のように変更。

 

let client:TWTRAPIClient = TWTRAPIClient(userID: session!.userID)

 

最終的にはこんな感じです。

Twitter.sharedInstance().logInWithCompletion {
                (session, error) -> Void in
                if (session != nil) {
                    print("signed in user name \(session!.userName)");
                    self.UserName = session!.userName
                    let client:TWTRAPIClient = TWTRAPIClient(userID: session!.userID)
                        client.loadUserWithID(session!.userID){ user, error in
                            self.ScreenName = user!.screenName
                            self.UserName = user!.name
                            self.UserId = user!.userID
                            self.LoginType = "twitter"
                            self.ProfileImgPath = user!.profileImageURL
                            self.saveTwitterDatatoCore()
                        }
                } else {
                    print("Error:\(error!.localizedDescription)");
                }
            }