【问题标题】:Twitter profileImageURL intermittently not loading (iOS Swift)Twitter profileImageURL 间歇性不加载(iOS Swift)
【发布时间】:2015-10-31 07:52:14
【问题描述】:

我正在使用 Twitters API 来获取用户详细信息,包括他们的个人资料图片 (TWTRUser.profileImageURL);它有效,但我发现个人资料图像通常没有加载。起初,我认为这是我在 iPhone 上的连接速度慢/连接不良,但即使我似乎连接良好,它似乎也在发生。我认为这可能是 Twitter 结束时的快速超时,但不能真正很好地诊断问题。

我正在考虑通过 Core Data 将最后一个已知图像缓存到数据库作为解决方法,但在我这样做之前,我想我会问我是否正确地做所有事情/遗漏了什么。这是我的 Swift 2 代码:

import TwitterKit

class Session: NSObject {
    class var sharedInstance: Session {
        struct Singleton {
            static let instance = Session()
        }
        return Singleton.instance
    }

    var userId: String?
    var userName: String?
    var userScreenName: String?
    var userImage: NSData?

    override init() {
        super.init()
        self.loadTwitterAccountDetails()
    }

    func loadTwitterAccountDetails(){
        if let session = Twitter.sharedInstance().sessionStore.session() {
            let client = TWTRAPIClient()

            client.loadUserWithID(session.userID) { (user, error) -> Void in
                if let user = user {
                    self.userId = "Twitter\(user.userID)"
                    self.userName = user.name
                    self.userScreenName = user.screenName
                    let userImageURL = NSURL(string: user.profileImageURL)
                    self.userImage = NSData(contentsOfURL: userImageURL!)
                }
            }
        }
    }
}

有什么想法吗?有人遇到过同样的问题吗?

【问题讨论】:

    标签: ios swift twitter swift2


    【解决方案1】:
    func loadTwitterAccountDetails(){
            if let session = Twitter.sharedInstance().sessionStore.session() {
                let client = TWTRAPIClient()
    
                client.loadUserWithID(session.userID) { (user, error) -> Void in
                    if let user = user {[week self]
                        dispatch_async(dispatch_get_main_queue()) {
                              self.userId = "Twitter\(user.userID)"
                              self.userName = user.name
                              self.userScreenName = user.screenName
                              if let userImageURL = NSURL(string: user.profileImageURL) {
                                    self.userImage = NSData(contentsOfURL: userImageURL)
                              }
                        }
                    }
                }
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      • 1970-01-01
      • 1970-01-01
      • 2013-06-14
      • 2015-08-29
      • 2016-10-20
      • 2017-05-02
      相关资源
      最近更新 更多