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

时间:2015-09-19 12:10:52

标签: ios swift session twitter twitter-fabric

我一直在使用Twitter.sharedInstance().session()?.userName在iOS中的标签中显示用户的推特地址(在Swift中)。现在我注意到我们收到了以下弃用警告:

  

- [Twitter会话]即将被弃用。它是   建议用户使用 - [TWTRSessionStore session]或    - [TWTRSessionStore sessionForUserID:]如果他们管理多个用户

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

人们如何更换Twitter.sharedInstance().session()?.userName前进?

3 个答案:

答案 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)
    }