swift RSS feed添加多个单元格内容项

时间:2015-08-12 15:29:25

标签: swift rss cells

我正在使用Ravi Shankar的rss feed swift脚本并尝试修改代码,以便显示rss描述以及文本单元格中的标题,并努力找到它不会显示的原因。

这是我的快速文件。

 //
//  BRTableViewController.swift
//  BlogReader
//
//  Created by Ravi Shankar on 31/07/14.
//  Copyright (c) 2014 Ravi Shankar. All rights reserved.
//

import UIKit

class BRTableViewController: UITableViewController, NSXMLParserDelegate {

var parser: NSXMLParser = NSXMLParser()
var blogPosts: [BlogPost] = []
var postTitle: String = String()
var postLink: String = String()
var postDescription: String = String()
var eName: String = String()

override func viewDidLoad() {
    super.viewDidLoad()
    let url:NSURL = NSURL(string: "http://www.adomain.co.uk/blog/feed")!
    parser = NSXMLParser(contentsOfURL: url)!
    parser.delegate = self
    parser.parse()
}

// MARK: - NSXMLParserDelegate methods

func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [NSObject : AnyObject]) {
    eName = elementName
    if elementName == "item" {
        postTitle = String()
        postLink = String()
        postDescription = String()
    }
}

func parser(parser: NSXMLParser, foundCharacters string: String?) {
    let data = string!.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
    if (!data.isEmpty) {
        if eName == "title" {
            postTitle += data
        } else if eName == "link" {
            postLink += data
        }
    } else if eName == "description" {
        postDescription += data
    }

}

func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
    if elementName == "item" {
        let blogPost: BlogPost = BlogPost()
        blogPost.postTitle = postTitle
        blogPost.postLink = postLink
        blogPost.postDescription = postDescription
        blogPosts.append(blogPost)
    }
}


override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

// MARK: - Table view data source

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 3
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return blogPosts.count
}


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

    let blogPost: BlogPost = blogPosts[indexPath.row]
    cell.textLabel?.text = blogPost.postTitle
    cell.detailTextLabel?.text = blogPost.postDescription
    cell.textLabel?.numberOfLines = 0
    return cell
}

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
     return 150.0
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)  {
    if segue.identifier == "viewpost" {
        let selectedRow = tableView.indexPathForSelectedRow()?.row
        let blogPost: BlogPost = blogPosts[selectedRow!]
        let viewController = segue.destinationViewController as! PostViewController
        viewController.postLink = blogPost.postLink
    }
}
}

我假设我遗漏了一些与之相关的代码 cell.detailTextLabel?.text =

0 个答案:

没有答案