我一直在使用Twitter.sharedInstance().session()?.userName
在iOS中的标签中显示用户的推特地址(在Swift中)。现在我注意到我们收到了以下弃用警告:
- [Twitter会话]即将被弃用。它是 建议用户使用 - [TWTRSessionStore session]或 - [TWTRSessionStore sessionForUserID:]如果他们管理多个用户
我切换到推荐的方式,并期望找到一个.userName
属性,但找不到。
人们如何更换Twitter.sharedInstance().session()?.userName
前进?
答案 0 :(得分:9)
好吧所以我也遇到了这个问题,似乎所有新的更改(无可否认地记录很少)都旨在更好地控制同时存在的多个用户会话。我做了一些深入研究他们在警告中提到的TWTRSessionStore
类,我发现虽然TWTRSessionStore的具体实现没有-session
属性,但它遵循以下协议<TWTRUserSessionStore, TWTRGuestSessionStore, TWTRSessionRefreshingStore>
和TWTRUserSessionStore
确实有-session
属性。
所以,总而言之,这是我退出的方式:
NSString *userID = [[[[Twitter sharedInstance] sessionStore] session] userID];
if(userID){
[[[Twitter sharedInstance] sessionStore] logOutUserID:userID];
}
我在Objective-C中做的很明显,但Swift版本非常相似。
答案 1 :(得分: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)")
}
}
}
答案 2 :(得分:1)
对于Swift,
if let userID = Twitter.sharedInstance().sessionStore.session()?.userID {
Twitter.sharedInstance().sessionStore.logOutUserID(userID)
}