絶対に挫折しないiphoneアプリ開発「超」入門という本のchapter10を勉強しています。
本に沿ってコーディングしているはずなのですが上記のエラーが発生します。
どのような問題があるのでしょうか。
現時点ではコメントで「エラー発生箇所」と記述している行の
self.itemがなぜかnullになっていることが原因なのかな?と考えています。
//
// ListViewController.swift
// NewsReader
//
import UIKit
class ListViewController : UITableViewController, NSXMLParserDelegate {
var parser:NSXMLParser!
var items = Item
var item:Item?
var currentString = ""
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return items.count } override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) cell.textLabel?.text = items[indexPath.row].title return cell } override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) startDownload() } func startDownload() { self.items = [] if let url = NSURL(string: "http://feeds.lifehacker.jp/rss/lifehacker/index.xml") { if let parser = NSXMLParser(contentsOfURL: url) { self.parser = parser self.parser.delegate = self self.parser.parse() } } } func parser(parser: NSXMLParser, didStartElement elementName: String, nameSpaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) { self.currentString = "" if elementName == "item" { self.item = Item() } } func parser(parser: NSXMLParser, foundCharcters string: String) { self.currentString += string } func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) { switch elementName { case "title":self.item?.title = currentString case "link":self.item?.link = currentString case "item": self.items.append(self.item!) // エラー発生箇所 default: break } } func parserDidEndDocument(parser: NSXMLParser) { self.tableView.reloadData() }
}
//
// Item.swift
// NewsReader
//
import Foundation
class Item {
var title = ""
var link = ""
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/19 12:03
2016/05/19 12:41
2016/05/20 17:59
2016/05/20 18:27 編集
2016/05/20 22:10
2016/05/20 23:56
2016/05/21 00:12
2016/05/21 01:23
2016/05/21 06:48