[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の実装は以下のようにしていました。

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

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

 

<br />
let client:TWTRAPIClient = TWTRAPIClient(userID: session!.userID)<br />

 

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

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