Problem mit RSS Parsing

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem mit RSS Parsing

    hallo zusammen,

    probiere gerade an diesem tutorial herum:
    github.com/arled/RSSwift

    wenn ich nun eine feed url in den FeedTableViewController eingebe (zeile 17) und mir die WebView anschauen möchte, crasht die app, sonst funktioniert alles.

    Code:

    Quellcode

    1. import UIKit
    2. class FeedTableViewController: UITableViewController, UITableViewDataSource, UITableViewDelegate, NSXMLParserDelegate {
    3. var myFeed : NSArray = []
    4. var url: NSURL = NSURL()
    5. override func viewDidLoad() {
    6. super.viewDidLoad()
    7. // Cell height.
    8. self.tableView.rowHeight = 70
    9. self.tableView.dataSource = self
    10. self.tableView.delegate = self
    11. // Set feed url.
    12. //url = NSURL(string: "http://www.skysports.com/rss/0,20514,11661,00.xml")! //DIESE URL FUNKTIONIERT
    13. url = NSURL(string: "http://www.loeschzug-humfeld.de/index.php?option=com_reports2&view=home&format=feed&type=rss")! //DIESE URL FUNKTIONIERT NICHT
    14. // Call custom function.
    15. loadRss(url);
    16. }
    17. func loadRss(data: NSURL) {
    18. // XmlParserManager instance/object/variable
    19. var myParser : XmlParserManager = XmlParserManager.alloc().initWithURL(data) as! XmlParserManager
    20. // Put feed in array
    21. myFeed = myParser.feeds
    22. tableView.reloadData()
    23. }
    24. override func didReceiveMemoryWarning() {
    25. super.didReceiveMemoryWarning()
    26. }
    27. override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    28. if let newUrl = segue.destinationViewController as? NewFeedViewController {
    29. newUrl.onDataAvailable = {[weak self]
    30. (data) in
    31. if let weakSelf = self {
    32. weakSelf.loadRss(data)
    33. }
    34. }
    35. }
    36. else if segue.identifier == "openPage" {
    37. var indexPath: NSIndexPath = self.tableView.indexPathForSelectedRow()!
    38. //let selectedFeedURL: String = feeds[indexPath.row].objectForKey("link") as String
    39. let selectedFTitle: String = myFeed[indexPath.row].objectForKey("title") as! String
    40. let selectedFContent: String = myFeed[indexPath.row].objectForKey("description") as! String
    41. let selectedFURL: String = myFeed[indexPath.row].objectForKey("link") as! String
    42. // Instance of our feedpageviewcontrolelr
    43. let fpvc: FeedPageViewController = segue.destinationViewController as! FeedPageViewController
    44. fpvc.selectedFeedTitle = selectedFTitle
    45. fpvc.selectedFeedFeedContent = selectedFContent
    46. fpvc.selectedFeedURL = selectedFURL
    47. }
    48. }
    49. // MARK: - Table view data source
    50. override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    51. return 1
    52. }
    53. override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    54. return myFeed.count
    55. }
    56. override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    57. let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell
    58. // Feeds dictionary.
    59. var dict : NSDictionary! = myFeed.objectAtIndex(indexPath.row) as! NSDictionary
    60. // Set cell properties.
    61. cell.textLabel?.text = myFeed.objectAtIndex(indexPath.row).objectForKey("title") as? String
    62. cell.detailTextLabel?.text = myFeed.objectAtIndex(indexPath.row).objectForKey("pubDate") as? String
    63. return cell
    64. }
    65. }
    Alles anzeigen

    xcode gibt folgende meldung:

    2015-07-14 21:45:00.721 RSSwift[8389:240166] +[_UIDictionaryManager _availableDefinitionDictionaries] returned nil. Error: Error Domain=ASError Code=21 "The operation couldn’t be completed. (ASError error 21 - Unable to copy asset information)" UserInfo=0x7ff1cb41d830 {NSDescription=Unable to copy asset information}
    2015-07-14 21:45:01.275 RSSwift[8389:240166] Unbalanced calls to begin/end appearance transitions for <_UIFallbackPresentationViewController: 0x7ff1cb4f18e0>.
    2015-07-14 21:45:06.668 RSSwift[8389:240166] +[_UIDictionaryManager _availableDefinitionDictionaries] returned nil. Error: Error Domain=ASError Code=21 "The operation couldn’t be completed. (ASError error 21 - Unable to copy asset information)" UserInfo=0x7ff1cb7846b0 {NSDescription=Unable to copy asset information}
    fatal error: unexpectedly found nil while unwrapping an Optional value

    hat es was mit url encoding zu tun?

    über hilfe wäre ich echt dankbar....

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von humfeld ()

  • hallo,

    das war auch mein 1.gedanke.
    habe über feedburner eine rss feed url als xml oder auch als json format generieren lassen,selbst damit funktioniert es nicht.
    dann habe ich mir einen anderen parser angesehen und damit lässt sich die url in einem webview öffnen,ist aber leider kein swift.

    hatte die vermutung das es vielleicht an dem url encoding liegt, aber wie bettet man das in den swiftcode ein?

    Quellcode

    1. selectedFeedUrl = selectedFeedUrl.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)