【问题标题】:Alternative for Twitter.sharedInstance().session()?.userName after deprecation on iOS Swift在 iOS Swift 上弃用后 Twitter.sharedInstance().session()?.userName 的替代品
【发布时间】:2015-12-16 13:11:49
【问题描述】:

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

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

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

人们将如何换掉Twitter.sharedInstance().session()?.userName 继续前进?

【问题讨论】:

  • 您好,您找到解决方案了吗?
  • @mariam nope 还没有。
  • 好的,谢谢。我会搜索一下。
  • “我决定改用推荐方式” - 你介意分享这段代码吗?我已经尝试过 [TWTRSessionStore session] 但该类中甚至不存在会话方法。

标签: ios swift session twitter twitter-fabric


【解决方案1】:

好的,所以我也遇到了这个问题,而且似乎所有较新的更改(诚然,文档记录很差)都是为了更好地控制同时存在的多个用户会话。我对他们在警告中提到的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 版本非常相似。

【讨论】:

  • 我可以看到 sessionStore 有一个 session 属性;但据我所见,会话属性没有用户名。据我所见@tadija 答案是要走的路;似乎很多代码只是为了获取用户名,但它确实有效,并且您在用户中获得了一堆其他项目(这是 TWTRUser 类型)
  • @tadija 的回答和我的回答执行完全相同的方法调用,唯一的区别是他在获取用户 ID 后进行 API 调用以获取有关用户的更多信息(包括用户名),但是自从切换到新的 sessionStore 东西之前,API 调用没有变化。
【解决方案2】:

如果您仍在寻找解决方案,这里有一个:

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)")
        }
    }
}

【讨论】:

    【解决方案3】:

    对于斯威夫特,

        if let userID = Twitter.sharedInstance().sessionStore.session()?.userID {
            Twitter.sharedInstance().sessionStore.logOutUserID(userID)
        }
    

    【讨论】:

      猜你喜欢
      • 2013-04-28
      • 2018-06-27
      • 2017-04-13
      • 2018-06-05
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      相关资源
      最近更新 更多