2014-07-12 5 views
1

저는 현재 신속하게 노력 중이며 RSS 리더 인 iOS iPhone 앱을 만들고 있습니다. 현재 파서 함수를 호출하는 데 문제가 있습니다. 나는 Objective-C에서 잘 개발 한 것을 Swift로 복제하려하고있다.Xml 파서 함수가 호출되지 않습니다.

이것은 내 나는 NSXMLParserDelegate를 설정하지만 여전히 그것이 결코 호출되지됩니다 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. 
    } 
} 

.

이 작업을 수행하기 위해 내가 할 수있는 것에 대한 아이디어가 있습니까? 이것은 내가 지금까지 가지고있는 모든 코드입니다. 어쩌면 특정 프레임 워크를 가져올 필요가 있을까요?

+1

미안하지만 유감스럽게도 프레임 워크가 누락되지 않았고 URL이 유효하며 데이터가로드 될 수 있으며 파서는 오류가 발생하지 않습니다 (에서 확인 됨). 구문 분석 후 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