簡體   English   中英

迅速將NSURL,“ cell.itemImageView.setImageWithURL”放入數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM