gpt4 book ai didi

ios - MWFeedParser RSS 阅读器无法获取图像

转载 作者:行者123 更新时间:2023-11-29 00:54:38 26 4
gpt4 key购买 nike

我正在尝试使用 MWFeedParser 从 RSS Feed 中获取图像。我正在获取 Feed 项,但是当我尝试获取图像时,content 值中缺少某些内容。它必须在那里,但它没有。

所以我用链接更改了内容值。链接是这样的:

http://www.uefa.com/uefaeuro/news/newsid=2372826.html?rss=2372826+Italy\'s+\'BBC\'+spell+out+programme+for+solidity

然后现在 match 值变为 nil。我不明白这是什么问题。

这是我使用的 RSS Feed url:

let url = NSURL(string: "feed://www.uefa.com/rssfeed/uefaeuro/rss.xml")

这是我从 RSS Feed 获取图片的代码:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("homeFeed", forIndexPath: indexPath) as! HomeFeedTableViewCell

cell.homeFeedImageView.image = UIImage(named: "placeholder")

let item = feedItem[indexPath.row] as MWFeedItem?
cell.homeFeedTextView.text = item?.title

if item?.link != nil{
let htmlContent = item!.link as NSString
var imageSource = ""

let rangeOfString = NSMakeRange(0, htmlContent.length)
do{
let regex = try NSRegularExpression(pattern: "<img.*?src=\"([^\"]*)\"", options: [])

if htmlContent.length > 0 {
let match = regex.firstMatchInString(htmlContent as String, options: [], range: rangeOfString)
if match != []{
let imageUrl = htmlContent.substringWithRange((match!.rangeAtIndex(2))) as NSString
print(imageUrl)

if NSString(string: imageUrl.lowercaseString).rangeOfString("feedburner").location == NSNotFound{
imageSource = imageUrl as String
}
}

}

if imageSource != ""{
cell.homeFeedImageView.setImageWithURL(NSURL(string: imageSource)!, placeholderImage: UIImage(named: "placeholder"))
}else{
cell.homeFeedImageView.image = UIImage(named: "placeholder")
}
}
catch let error as NSError{
print(error.localizedDescription)
}
}


return cell
}

最佳答案

尝试使用 URLRequest 设置图像,如下所示:

if imageSource != ""{
let request = URLRequest(url: Foundation.URL(string: imageSource)!)
cell.imageView?.setImageWith(request, placeholderImage: nil, success: { [weak cell] request, response, image in
if cell != nil {
cell!.imageView!.image = image
}

if self.tableView.visibleCells._bridgeToObjectiveC().contains(cell!) {
self.tableView.reloadRows(at: [indexPath], with: .none)
}
}, failure:nil)
}

working screenshot of your RSS

屏幕截图中的图像很小,但这是由于我的 imageview 配置所致。我猜您的 imageview 配置为适合更大的图像。

祝你好运!

***注意:以上代码适用于 Swift 3。

关于ios - MWFeedParser RSS 阅读器无法获取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37738072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com