gpt4 book ai didi

ios - swift NSURL, "cell.itemImageView.setImageWithURL"进入数组

转载 作者:行者123 更新时间:2023-11-30 12:58:36 25 4
gpt4 key购买 nike

救命啊!完全 Swift 新手!我想我已经很接近了,但我的经验不足让我退缩了..

我怎样才能将这一行变成一个像上面的数组一样的数组?

// NEED HELP HERE~!
cell.itemImageView.setImageWithURL(NSURL(string: mediaURL)!, placeholderImage: UIImage(named: "placeholder"))

请原谅我的代码被删减;太乱了,无法完全粘贴。

class FeedTableViewController: UITableViewController, NSXMLParserDelegate, MWFeedParserDelegate, SideBarDelegate {
var feedItems = [MWFeedItem]()

// xml parser
var myParser: NSXMLParser = NSXMLParser()

// rss records
var rssRecordList : [RssRecord] = [RssRecord]()
var rssRecord : RssRecord?

// original var before adding media
// var isTagFound = [ "item": false , "title":false, "pubDate": false ,"link":false]
var isTagFound = [ "item": false , "title":false, "pubDate": false , "media": false , "link":false]

var mediaURL = ""



////SNIP MESSY CODE

//return the number of rows
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.rssRecordList.count
return feedItems.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! FeedTableViewCell

let item = feedItems[indexPath.row] as MWFeedItem?
cell.itemTitleLabel.text = item?.title

let thisRecord : RssRecord = self.rssRecordList[indexPath.row]
cell.itemDateLabel.text = thisRecord.pubDate

// NEED HELP HERE~!
cell.itemImageView.setImageWithURL(NSURL(string: mediaURL)!, placeholderImage: UIImage(named: "placeholder"))

print("print check for URL",mediaURL)



////SNIP MESSY CODE

func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {

if elementName == "item" {
mediaURL = ""
self.isTagFound["item"] = true
self.rssRecord = RssRecord()

}else if elementName == "title" {
self.isTagFound["title"] = true

}else if elementName == "pubDate" {
self.isTagFound["pubDate"] = true

}else if elementName == "media:thumbnail" {
self.mediaURL = attributeDict["url"]!
}
}

当我“print(mediaURL)”时,我可以看到 RSS 中最后一个“media:thumbnail”资源的 URL,所以知道我已经很接近了。如果有人可以帮忙的话,我确信这是一个语法问题!

提前感谢您,并感谢迈克尔提出的好问题。

为了回答 Michael,我添加了 NSXMLParser 的部分,其中设置了“mediaURL”以及我在顶部调用的类。

另外,我正在尝试从数组中读取“mediaURL”,正如他所质疑的那样。该数组将是包含“media:thumbnail”URL 值的 RSS 提要行。

再次抱歉,内容如此困惑。您可以看到我已将其与我在这里找到的 MWFeedParserDelegate 和 NSXMLParserDelegate 代码一起修补。

再次感谢您!

~~~更新~~~由于对 Swift 和 Objective-C 太陌生,我无法理解如何实现这一点。然而,我确实找到了一个不同的例子,看起来它符合 Himanshu 想要说的内容:

    func loadImageSynchronouslyFromURLString(_ urlString: String) -> UIImage? {
if let url = URL(string: urlString) {
let request = NSMutableURLRequest(url: url)
request.timeoutInterval = 30.0
var response: URLResponse?
let error: NSErrorPointer? = nil
var data: Data?
do {
data = try NSURLConnection.sendSynchronousRequest(request as URLRequest, returning: &response)
} catch let error1 as NSError {
error??.pointee = error1
data = nil
}
if (data != nil) {
return UIImage(data: data!)
}
}
return nil
}

希望其他人可以从中受益..

最佳答案

创建一个从 url 获取图像的函数

func getImageFromURL(_ fileURL: String) -> UIImage {
var url = NSURL(string: fileURL)!
var image = UIImage(data: Data(contentsOf: url))!
return image
}

简单地调用它

self.imageview.image! = self.getImageFromURL(url)

尝试此代码与某些库 Kingfisher 的配合

let url = NSURL(string: URL STRING HERE )!
[YOURIMAGEVIEW sd_setImageWithURL:url placeholderImage:[UIImage imageNamed:@"PLACEHOLDERIMAGE"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
if (!error) {
YOURIMAGEVIEW.image=image;
}
}];

您可以使用Kingfisher库下载图像并将其设置到您的UIImageview中。

关于ios - swift NSURL, "cell.itemImageView.setImageWithURL"进入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40120185/

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