DESIGN COMPUTING CRAFT

正誤表/サポート表:たのしいSwiftプログラミング[iOS 8&Xcode 6対応]

下記のとおり、記載内容に多くの誤りがございました。訂正するとともに、深くお詫び申し上げます。また、Xcode 6.1 / iOSへの対応にともなう修正も下のサポート表にまとめましたのでご参照ください。

正誤表:初版第1刷(2015年3月16日最終更新)
P.004 ビデオ解説マーク 誤:
MOVE
正:
MOVIE
P.007 誤:
3-7-7 switch
正:
3-7-7 switch文
P.047 誤:
拡張子はなしにしておいて。読み込みに成功すれば、実行結果のところには画像サイズが表示される。
正:
画像のフォーマットがpngの場合、拡張子なしでもいけるぜ。それ以外の場合は、拡張子まで含めて記述してね。
P.073 下 誤:
ECU-JP
正:
EUC-JP
P.082 下

誤:
これが、配列の作り方ね。

配列ができあがったら、
正:
これが辞書の作り方ね。

辞書ができあがったら、

P.091 ソースコード下から2行目 誤:
zはminより小さいまたは
正:
Xはminより小さいまたは
P.093 キャプション 誤:
条件文付きforルールの文法
正:
条件文付きforループの文法
P.098 見出し 誤:
3-7-7 switch
正:
3-7-7 switch文
P.099 誤:
switch 値 {
case 値1:
    処理
}
case 値2:
    処理
}
default:
    処理
}
}

正:
switch 値 {
case 値1:
    処理
case 値2:
    処理
default:
    処理
}
P.103 下 誤:
受け取る方は、返り値は普通の方じゃなくて
正:
受け取る方は、返り値は普通の型じゃなくて
P.104 中 誤:
クロージャを使うスッキリとして、
正:
クロージャを使うとスッキリして、
P.144 中 誤:
まず気になるのは、.swiftという拡張子持つファイル
正:
まず気になるのは、.swiftという拡張子を持つファイル
P.165 上 誤:
ってセロベースで数えていく。
正:
ってゼロベースで数えていく。
P.170 誤:
tableView(numberOfRowsInSection)
正:
tableView(tableView, numberOfRowsInSection)
P.170 誤:
tableView(cellForRowAtIndexPath)
正:
tableView(tableView, cellForRowAtIndexPath)
P.172 UITableViewクラス 誤:
registerClass:(forCellReuseIdentifier)
正:
registerClass(forCellReuseIdentifier)
P.173 上 誤:
tableView(numberOfRowsInSection)
正:
tableView(tableView, numberOfRowsInSection)
P.173 上 誤:
tableView(cellForRowAtIndexPath)
正:
tableView(tableView, cellForRowAtIndexPath)
P.173 誤:
dequeueReusableCellWithIdentifier()
正:
dequeueReusableCellWithIdentifier(identifier)
P.173 下 誤:
UITextViewCellにはtextLabelっていうプロパティ
正:
UITableViewCellにはtextLabelっていうプロパティ
P.175 ソースコード2行目と6行目 行末のセミコロン(;)をトル
P.175 ソースコード4行目と9行目 行頭のfuncを、override funcに
P.176 ソースコード2行目と3行目と7行目 行末のセミコロン(;)をトル
P.176 ソースコード5行目 誤:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
正:
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
P.176 ソースコード10行目 誤:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
正:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
P.177 ソースコード2行目 誤:
let cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "detailCell")
正:
var cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "detailCell")
P.187 誤:
1ヶ所だけ変えてほしい。dequeueReusableCellwithIdentifier()を呼ぶところ。
正:
1ヶ所だけ変えてほしい。dequeueReusableCellwithIdentifier(identifier)を呼ぶところ。
P.194 誤:
sendSynchronousRequest(returningResponse, error)
正:
sendSynchronousRequest(request, returningResponse, error)
P.195 中 誤:
まず、先頭にUI Kitをimportする分を
正:
まず、先頭にUI Kitをimportする文を
P.200 NSURLConnectionクラス 誤:
sendAsynchronousRequest(queue, completionHandler)
正:
sendAsynchronousRequest(request, queue, completionHandler)
P.204 NSURLSessionクラス 誤:
dataTaskWithURL(completionHandler)
正:
dataTaskWithURL(url, completionHandler)
P.207 ソースコード2行目の後に挿入 let newsUrlString = "http://www.apple.com"
P.215 中 誤:同期的読み込みの問題についてはPART 7を

正:同期的読み込みの問題についてはPART 6を

P.217 NSXMLParserDelegateプロトコル 誤:
parser(didStartElement, namespaceURI, qualifiedName, attributes)
正:
parser(parser, didStartElement, namespaceURI, qualifiedName, attributes)
P.218 NSXMLParserDelegateプロトコル 誤:
parser(foundCharacters)
正:
parser(parser, foundCharacters)
P.219 NSXMLParserDelegateプロトコル 誤:
parser(didEndElement, namespaceURI, qualifiedName)
正:
parser(parser, didEndElement, namespaceURI, qualifiedName)
P.224 NSJSONSerializationクラス 誤:
JSONObjectWithData(options, error)
正:
JSONObjectWithData(data, options, error)
P.231 下 ソースコード3行目 行末のセミコロン(;)をトル
P.235 下 誤:
tableView(didSelectRowAtIndexPath)
正:
tableView(tableView, didSelectRowAtIndexPath)
P.238 UIWebViewクラス 誤:
loadRequest()
正:
loadRequest(request)
P.239 上 誤:
最後に、ViewControllerからDetailController()に、
正:
最後に、ViewControllerからDetailControllerに、
P.239 ソースコードファイル名 誤:
DetailController.swift
正:
ViewController.swift
P.247 下 一文追加 ライブラリペインからドラッグして追加してくれ。DetailControllerの下にあるツールバーに追加するんだ。2つ追加する。
P.251 SLComposeViewControllerクラス 誤:
isAvailableForServiceType()
正:
isAvailableForServiceType(serviceType)
P.252 SLComposeViewControllerクラス 誤:
presentViewController(animated, completion)
正:
presentViewController(viewControllerToPresent, animated, completion)
P.258 UIViewクラス 誤:
viewWithTag()
正:
viewWithTag(tag)
P.264 NSMutableArrayクラス 誤:
sortUsingComparator()
正:
sortUsingComparator(cmptr)
P.268 クラス名 誤:
UIViewクラス
正:
UIImageクラス
サポート表(iOS 8.1&Xcode 6.1への対応):初版第1刷(2015年3月23日最終更新)
P.043 下 ソースコード4行目 旧:
string.addAttribute(NSFontAttributeName, value: UIFont(name: "Times", size: 48), range: NSMakeRange(0, 6))
新:
string.addAttribute(NSFontAttributeName, value: UIFont(name: "Times", size: 48)!, range: NSMakeRange(0, 6))
P.044 ソースコード2行目 旧:
string.addAttribute(NSFontAttributeName, value: UIFont(name: "Times", size: 48), range: NSMakeRange(0, 6))
新:
string.addAttribute(NSFontAttributeName, value: UIFont(name: "Times", size: 48)!, range: NSMakeRange(0, 6))
P.047 ソースコード3行目 旧:
var image = UIImage(named: "tokyo_iPhone")
新:
var image = UIImage(named: "tokyo_iPhone")!
P.098 下 ソースコード4行目 旧:
var monthName
新:
var monthName: String
P.105 下 ソースコード 旧:
func dataTaskWithURL(_ url: NSURL!, completionHandler completionHandler: ((NSData!, NSURLResponse!, NSError!) ->
Void)!) -> NSURLSessionDataTask!

新:
func dataTaskWithURL(url: NSURL, completionHandler: ((NSData!, NSURLResponse!, NSError!) ->
Void)?) -> NSURLSessionDataTask
P.131 上 ソースコード2行目 旧:
var url = NSURL(string: "http://www.apple.com")
新:
var url = NSURL(string: "http://www.apple.com")!
P.131 中 ソースコード2行目 旧:
var url = NSURL(string: "http://www.apple.com")
新:
var url = NSURL(string: "http://www.apple.com")!
P.131 下 ソースコード2行目 旧:
var url = NSURL(string: "http://www.apple.com")
新:
var url = NSURL(string: "http://www.apple.com")!
P.132 上 ソースコード2行目 旧:
var url = NSURL(string: "http://www.apple.com")
新:
var url = NSURL(string: "http://www.apple.com")!
P.132 下 ソースコード2行目 旧:
var url = NSURL(string: "http://www.apple.com")
新:
var url = NSURL(string: "http://www.apple.com")!
P.133 上 ソースコード2行目 旧:
var url = NSURL(string: "http://www.apple.com")
新:
var url = NSURL(string: "http://www.apple.com")!
P.133 中 ソースコード2行目 旧:
var url = NSURL(string: "http://www.apple.com")
新:
var url = NSURL(string: "http://www.apple.com")!
P.168 ソースコード2行目 backgroundColor 新:
backgroundColorの設定をしているが、Xcode 6.1のPlaygroundだと、問題が発生して設定できない。Playgroundではなくプロジェクトを作成すれば、設定できる。
P.171 ソースコード下から3行目 旧:
cell.textLabel?.text = "Swift"
新:
cell.textLabel.text = "Swift"
P.173 UITableViewCellクラス 旧:
var textLabel: UILabel? { get }
新:
var textLabel: UILabel { get }
P.175 ソースコード14行目 旧:
cell.textLabel?.text = iphones[indexPath.row]
新:
cell.textLabel.text = iphones[indexPath.row]
P.177 ソースコード5行目 旧:
cell.textLabel?.text = iphones[indexPath.row]
新:
cell.textLabel.text = iphones[indexPath.row]
P.188 ソースコード1行目 旧:
cell.textLabel?.text = "Swift News"
新:
cell.textLabel.text = "Swift News"
P.190 ソースコード最後の行 旧:
var url = NSURL(string: urlString)
新:
var url = NSURL(string: urlString)!
P.191 NSURLクラス 旧:
convenience init(string URLString: String)
新:
convenience init?(string URLString: String)
P.193 ソースコード7行目 旧:
var url = NSURL(string: urlString)
新:
var url = NSURL(string: urlString)!
P.193 ソースコード最後の行 旧:
var htmlString = NSString(data: data!, encoding: NSUTF8StringEncoding)
新:
var htmlString = NSString(data: data!, encoding: NSUTF8StringEncoding)!
P.194 NSURLConnectionクラス 旧:
class func sendSynchronousRequest(request: NSURLRequest, returningResponse response: AutoreleasingUnsafeMutablePointer, error error: NSErrorPointer) -> NSData?
新:
class func sendSynchronousRequest(request: NSURLRequest, returningResponse response: AutoreleasingUnsafeMutablePointer, error: NSErrorPointer) -> NSData?
P.194 NSStringクラス 旧:
convenience init(data: NSData, encoding: UInt)
新:
convenience init?(data: NSData, encoding: UInt)
P.195 ソースコード最後の行 旧:
let image = UIImage(data: htmlData!)
新:
let image = UIImage(data: htmlData!)!
P.200 ソースコード1行目 旧:
var url = NSURL(string: urlString)
新:
var url = NSURL(string: urlString)!
P.200 ソースコード7行目 旧:
var html = NSString(data: data, encoding: NSUTF8StringEncoding)
新:
var html = NSString(data: data, encoding: NSUTF8StringEncoding)!
P.200 NSURLConnectionクラス 旧:
class func sendAsynchronousRequest(request: NSURLRequest, queue queue: NSOperationQueue!, completionHandler handler: (NSURLResponse!, NSData!, NSError!) -> Void)
新:
class func sendAsynchronousRequest(request: NSURLRequest, queue: NSOperationQueue!, completionHandler handler: ((NSURLResponse!, NSData!, NSError!) -> Void)!)
P.203 ソースコード7行目 旧:
var url = NSURL(string: urlString)
新:
var url = NSURL(string: urlString)!
P.203 ソースコード12行目 旧:
var string = NSString(data: data, encoding: NSUTF8StringEncoding)
新:
var string = NSString(data: data, encoding: NSUTF8StringEncoding)!
P.204 NSURLSessionクラス 旧:
func dataTaskWithURL(url: NSURL, completionHandler completionHandler: ((NSURL!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDataTask
新:
func dataTaskWithURL(url: NSURL, completionHandler: ((NSData!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDataTask
P.208 ソースコード2行目 旧:
var url = NSURL(string: newsUrlString)
新:
var url = NSURL(string: newsUrlString)!
P.214 ソースコード5行目 旧:
var url = NSURL(string: urlString)
新:
var url = NSURL(string: urlString)!
P.214 ソースコード8行目 旧:
var parser = NSXMLParser(contentsOfURL: url)
新:
var parser = NSXMLParser(contentsOfURL: url)!
P.215 NSXMLParserクラス 旧:
convenience init(contentsOfURL url: NSURL!)
新:
convenience init?(contentsOfURL url: NSURL!)
P.216 ソースコード9行目 旧:
var url = NSURL(string: urlString)
新:
var url = NSURL(string: urlString)!
P.216 ソースコード12行目 旧:
var parser = NSXMLParser(contentsOfURL: url)
新:
var parser = NSXMLParser(contentsOfURL: url)!
P.217 NSXMLParserDelegateプロトコル 旧:
optional func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI namespaceURI: String, qualifiedName qualifiedName: String, attributes attributeDict: [NSObject : AnyObject])
新:
optional func parser(parser: NSXMLParser!, didStartElement elementName: String!, namespaceURI: String!, qualifiedName qName: String!, attributes attributeDict: [NSObject : AnyObject]!)
P.218 NSXMLParserDelegateプロトコル 旧:
optional func parser(parser: NSXMLParser, foundCharacters string: String)
新:
optional func parser(parser: NSXMLParser!, foundCharacters string: String!)
P.219 NSXMLParserDelegateプロトコル 旧:
optional func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI namespaceURI: String, qualifiedName qName: String)
新:
optional func parser(parser: NSXMLParser!, didEndElement elementName: String!, namespaceURI: String!, qualifiedName qName: String!)
P.223 下 ソースコード6行目 旧:
var url = NSURL(string: urlString)
新:
var url = NSURL(string: urlString)!
P.224 NSJSONSerializationクラス 旧:
class func JSONObjectWithData(data: NSData, options opt: NSJSONReadingOptions, error error: NSErrorPointer) -> AnyObject?
新:
class func JSONObjectWithData(data: NSData, options opt: NSJSONReadingOptions, error: NSErrorPointer) -> AnyObject?
P.229 ソースコード3行目 旧:
var url = NSURL(string: newsUrlString)
新:
var url = NSURL(string: newsUrlString)!
P.232 ソースコード下から4行目 旧:
cell.textLabel?.text = entry["title"] as? String
新:
cell.textLabel.text = entry["title"] as? String
P.238 中 ソースコード下から4行目 旧:
var url = NSURL(string: self.entry["link"] as String)
新:
var url = NSURL(string: self.entry["link"] as String)!
P.251 下 SLComposeViewControllerクラス 旧:
init(forServiceType serviceType: String!) -> SLComposeViewController
新:
init!(forServiceType serviceType: String!) -> SLComposeViewController
P.261 下 ソースコード下から3行目 旧:
let url = NSURL(string: newsUrlString)
新:
let url = NSURL(string: newsUrlString)!
P.268 UIImageクラス 旧:
init(named name: String) -> UIImage
新:
init?(named name: String) -> UIImage