我想提出有关新闻的申请。我决定使用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
我错过了什么吗?有什么建议吗?