2014-07-12 46 views
1

我目前正在使用swift並試圖製作RSS閱讀器iOS iPhone應用程序。我目前在調用解析器函數時遇到問題。我真的想用Swift來複制我在Objective-C中開發的工具(這很好用)。Xml解析器函數永遠不會被調用

這是我tableView.swift class

import UIKit 

class FeedTableViewController: UITableViewController, NSXMLParserDelegate { 

    var parser: NSXMLParser = NSXMLParser() 
    var feeds: NSMutableArray = [] 
    var fItem = Dictionary<String, Float>() 
    var fTitle: String = String() 
    var element: String = String() 


    override func viewDidLoad() { 
     super.viewDidLoad() 

     var url: NSURL = NSURL.URLWithString("http://feeds.feedburner.com/TouchCodeMagazine") 
     parser = NSXMLParser(contentsOfURL: url) 
     parser.delegate = self 
     parser.shouldResolveExternalEntities = false 
     parser.parse() 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 

    // #pragma mark - Table view data source 
    override func numberOfSectionsInTableView(tableView: UITableView?) -> Int { 
     return 1 
    } 

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

    override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell? { 

     let CellId: NSString = "Cell" 

     var cell: UITableViewCell = tableView?.dequeueReusableCellWithIdentifier(CellId) as UITableViewCell 

     if let ip = indexPath { 
      cell.textLabel.text = "hello\(ip.row)" 
     } 
     return cell 
    } 

    // This function is never called. 
    func parser(parser: NSXMLParser!, didStartElement elementName: String!, nameSpaceURI namespaceURI: String!, qualifiedName: String!, attributes attributeDict: Dictionary<String, Float>) { 

     element = elementName 
     println(element) // This line is never executed. 
    } 
} 

我已經設置了NSXMLParserDelegate但它仍然不會被調用。

有什麼想法,我可以做些什麼來得到這個工作?這是迄今爲止我所有的代碼。也許我需要導入一個特定的框架?

+1

即時通訊不好意思,但我也沒有得到它(我試了一下) - 你不缺少框架,網址是有效的,數據也可以從它加載,解析器遇到沒有錯誤(檢查println(「\(parser.parserError)」)解析後...我不知道但是...這看起來像一個錯誤 –

+0

謝謝@ Daij-Djan我會繼續調查,看看爲什麼會發生這種情況。 – Led

回答

3

嘗試:

func parser(parser: NSXMLParser!, didStartElement elementName: String!, namespaceURI: String!, qualifiedName: String!, attributes: Dictionary<String, Float>) { 
    println(elementName) // This line is never executed. 
} 

更正:其實,這不是最後一個參數,它是namespaceURInameSpaceURI的原稿中的拼寫。

複製粘貼再次從工作操場上。

+0

我只是不能相信這一切都歸結爲拼寫錯誤:S謝謝,雖然。良好的結對編程:p – Led

相關問題