首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Twitter用户图像分析- Swift

Twitter用户图像分析- Swift
EN

Stack Overflow用户
提问于 2016-05-24 09:46:58
回答 2查看 98关注 0票数 0

我试图使用以下代码从twitter (解析-twitter登录)获取用户图像:

代码语言:javascript
复制
 if PFTwitterUtils.isLinkedWithUser(PFUser.currentUser()!) {

        let screenName = PFTwitterUtils.twitter()?.screenName!
        let requestString = NSURL(string: "https://api.twitter.com/1.1/users/show.json?screen_name=" + screenName!)
        let request = NSMutableURLRequest(URL: requestString!, cachePolicy: .ReloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 5.0)
        PFTwitterUtils.twitter()?.signRequest(request)
        let session = NSURLSession.sharedSession()

        session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in
            print(data)
            print(response)
            print(error)

            if error == nil {
                var result: AnyObject?
                do {
                    result = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments)
                } catch let error2 as NSError? {
                    print("error 2 \(error2)")
                }

                let names: String! = result?.objectForKey("name") as! String
                let separatedNames: [String] = names.componentsSeparatedByString(" ")

                //self.firstName = separatedNames.first!
                //self.lastName = separatedNames.last!

                let urlString = result?.objectForKey("profile_image_url_https") as! String
                let hiResUrlString = urlString.stringByReplacingOccurrencesOfString("_normal", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
                let twitterPhotoUrl = NSURL(string: hiResUrlString)
                let imageData = NSData(contentsOfURL: twitterPhotoUrl!)
                let twitterImage: UIImage! = UIImage(data:imageData!)
                self.userImg = UIImageView(image: twitterImage)
            }
        }).resume()
    }

但imageData是零

代码语言:javascript
复制
  let imageData = NSData(contentsOfURL: twitterPhotoUrl!) 
  let twitterImage: UIImage! = UIImage(data:imageData!)

twitterphotoUrl实际上有这个链接

有什么帮助吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-24 10:13:27

尝试使用下面的代码,

代码语言:javascript
复制
if let imageData = NSData(contentsOfURL: twitterPhotoUrl!)
{
    dispatch_async(dispatch_get_main_queue(), { () -> Void in
                self.userImg.image = UIImage(image: imageData!)
     })
}

希望这能起作用

票数 0
EN

Stack Overflow用户

发布于 2016-05-24 10:09:28

我猜您从pbs.twimg.com URL中得到了ATS异常,所以您没有得到数据,所以当您强制展开它时,您会跌倒。您应该将该域添加到ATS异常列表中,如这里记录在这里 (搜索页面上的NSExceptionDomain )所示,并在许多其他地方讨论。

此外,强制展开URL调用的结果始终是个坏主意,因为任何数量的事情都可能阻止创建数据对象。在这种情况下,您应该使用卫队或if let语句。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37409962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档