Twitter.sharedInstance().session()?.userName 在 iOS Swift 弃用后的替代方案
Alternative for Twitter.sharedInstance().session()?.userName after deprecation on iOS Swift
我一直在使用 Twitter.sharedInstance().session()?.userName
在 iOS(Swift 中)的标签中显示用户的推特地址。现在我注意到我们收到以下弃用警告:
-[Twitter session] will soon be deprecated. It is
recommended that users use -[TWTRSessionStore session] or
-[TWTRSessionStore sessionForUserID:] if they are managing multiple users
我切换到推荐方式,本以为能找到.userName
属性左右,结果没找到
人们如何换掉 Twitter.sharedInstance().session()?.userName
前进?
好的,所以我也遇到了这个问题,似乎所有较新的更改(公认的记录很少)都是为了更好地控制同时存在的多个用户会话而设计的.我深入研究了他们在警告中提到的 TWTRSessionStore
class,我发现虽然 TWTRSessionStore 的具体实现没有 -session
属性 ,它遵守以下协议 <TWTRUserSessionStore, TWTRGuestSessionStore, TWTRSessionRefreshingStore>
并且 TWTRUserSessionStore
确实有 -session
属性。
所以,总而言之,我是这样退出的:
NSString *userID = [[[[Twitter sharedInstance] sessionStore] session] userID];
if(userID){
[[[Twitter sharedInstance] sessionStore] logOutUserID:userID];
}
我在 Objective-C 中做的,很明显,但是 Swift 版本非常相似。
如果您仍在寻找解决方案,这里有一个:
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)")
}
}
}
对于Swift、
if let userID = Twitter.sharedInstance().sessionStore.session()?.userID {
Twitter.sharedInstance().sessionStore.logOutUserID(userID)
}
我一直在使用 Twitter.sharedInstance().session()?.userName
在 iOS(Swift 中)的标签中显示用户的推特地址。现在我注意到我们收到以下弃用警告:
-[Twitter session] will soon be deprecated. It is recommended that users use -[TWTRSessionStore session] or -[TWTRSessionStore sessionForUserID:] if they are managing multiple users
我切换到推荐方式,本以为能找到.userName
属性左右,结果没找到
人们如何换掉 Twitter.sharedInstance().session()?.userName
前进?
好的,所以我也遇到了这个问题,似乎所有较新的更改(公认的记录很少)都是为了更好地控制同时存在的多个用户会话而设计的.我深入研究了他们在警告中提到的 TWTRSessionStore
class,我发现虽然 TWTRSessionStore 的具体实现没有 -session
属性 ,它遵守以下协议 <TWTRUserSessionStore, TWTRGuestSessionStore, TWTRSessionRefreshingStore>
并且 TWTRUserSessionStore
确实有 -session
属性。
所以,总而言之,我是这样退出的:
NSString *userID = [[[[Twitter sharedInstance] sessionStore] session] userID];
if(userID){
[[[Twitter sharedInstance] sessionStore] logOutUserID:userID];
}
我在 Objective-C 中做的,很明显,但是 Swift 版本非常相似。
如果您仍在寻找解决方案,这里有一个:
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)")
}
}
}
对于Swift、
if let userID = Twitter.sharedInstance().sessionStore.session()?.userID {
Twitter.sharedInstance().sessionStore.logOutUserID(userID)
}