如何使用swift连接RSS feed

时间:2015-03-17 03:55:40

标签: ios swift rss

我想提出有关新闻的申请。我决定使用rss feed但不知何故rss feed没有出现。

这是我的代码 这就是我声明变量

的方式
var parser = NSXMLParser()
var feeds = NSMutableArray()
var elements = NSMutableDictionary()
var element = NSString()
var ftitle = NSMutableString()
var link = NSMutableString()
var fdescription = NSMutableString()

这是在我的viewDidLoad函数

    feeds = []
    var url: NSURL = NSURL(string:"https://www.apple.com/main/rss/hotnews/hotnews.rss")!
    parser = NSXMLParser(contentsOfURL: url)!
    parser.delegate = self
    parser.shouldProcessNamespaces = false
    parser.shouldReportNamespacePrefixes = false
    parser.shouldResolveExternalEntities = false
    parser.parse()

这是我的didStartElement函数。

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

    element = elementName
    // instantiate feed properties
    if(element as NSString).isEqualToString("item"){
        elements = NSMutableDictionary.alloc()
        elements = [:]
        ftitle = NSMutableString.alloc()
        ftitle = ""
        link = NSMutableString.alloc()
        link = ""
        fdescription = NSMutableString.alloc()
        fdescription = ""
    }

这是我的didEndElement

func parser(parser: NSXMLParser!, didEndElement elementName: String!, namespaceURI: String!, qualifiedName qName: String!) {
    //process feed elements
    if(elementName as NSString).isEqualToString("item")
    {
        if ftitle != ""
        {
            elements.setObject(ftitle, forKey: "title")
        }
        if link != ""{
         elements.setObject(link, forKey: "link")
        }
        if fdescription != ""
        {
            elements.setObject(fdescription, forKey: "decription")
        }
        feeds.addObject(elements)
    }

}

这是我的foundCharacter函数

func parser(parser: NSXMLParser!, foundCharacters string: String!) {
    if element.isEqualToString("title")
    {
        ftitle.appendString(string)
    }
    else if element.isEqualToString("link")
    {
        link.appendString(string)
    }
    else if element.isEqualToString("description")
    {
        fdescription.appendString(string)
    }

}

这是我的cellForRowAtIndexPath函数

 let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell
        // Configure the cell...
cell.textLabel?.text = (feeds.objectAtIndex(indexPath.row).objectForKey("tittle") as String)
cell.detailTextLabel?.numberOfLines = 3
cell.detailTextLabel?.text = (feeds.objectAtIndex(indexPath.row).objectForKey("description") as String)
return cell

我错过了什么吗?有什么建议吗?

0 个答案:

没有答案