[英]swift NSURL, “cell.itemImageView.setImageWithURL” into array
救命! 总计Swift Newb! 我想我是如此亲密,但是我的经验不足使我退缩。
我怎样才能使这条线成为一个像上面的那些一样的数组?
// 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"]!
}
}
当我“打印(mediaURL)”时,我可以从RSS中看到最后一个“ media:thumbnail”资产的URL,所以知道我已经关闭了。我确定如果有人可以帮助,这是一个语法问题!
在此先感谢您,并感谢Michael的提问。
为了回答迈克尔,我添加了NSXMLParser的一部分,该部分设置了“ mediaURL”以及我在顶部调用的类。
另外,正如他所质疑的,我试图从数组中读取“ mediaURL”。 该数组将是包含“ media:thumbnail” URL值的RSS的feed的行。
再次抱歉,这是如此切碎。 您可以看到我已经在这里找到的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中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.