iOS Swift上弃用后Twitter.sharedInstance().session()?. userName的替代方案

Nei*_*ham 7 twitter session ios swift twitter-fabric

我一直在用Twitter.sharedInstance().session()?.userNameiOS(在Swift中)的Label中显示用户的推特地址.现在我注意到我们得到以下弃用警告:

- [Twitter会话]很快将被弃用.如果用户管理多个用户,建议用户使用 - [TWTRSessionStore session]或 - [TWTRSessionStore sessionForUserID:]

我切换到推荐的方式,并期望找到一个.userName属性,但找不到一个.

人们如何才能Twitter.sharedInstance().session()?.userName继续前进呢?

小智 9

好的,我也遇到了这个问题,似乎所有新的更改(无可否认地记录很少)都旨在允许更好地控制同时存在的多个用户会话.我做了一些深入研究TWTRSessionStore他们在警告中提到的类,我发现虽然TWTRSessionStore的具体实现没有-session属性,但它遵循以下协议<TWTRUserSessionStore, TWTRGuestSessionStore, TWTRSessionRefreshingStore>并且TWTRUserSessionStore具有-session属性.

总而言之,这就是我注销的方式:

NSString *userID = [[[[Twitter sharedInstance] sessionStore] session] userID];

if(userID){
    [[[Twitter sharedInstance] sessionStore] logOutUserID:userID];
}
Run Code Online (Sandbox Code Playgroud)

我明确地在Objective-C中这样做,但Swift版本非常相似.


tad*_*ija 6

如果您仍在寻找解决方案,请参阅以下内容:

if let session = Twitter.sharedInstance().sessionStore.session() {
    let client = TWTRAPIClient()
    client.loadUserWithID(session.userID) { (user, error) -> Void in
        if let user = user {
            print("@\(user.screenName)")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)