ストリングのインデックスを指し示すadvancedBy()ですが、執筆時はadvance()だったのがベータを重ねている間にバージョンアップが行われたようです。最終チェックで見落としてしまい申し訳ありませんでした。
該当箇所の記述とサンプルコードを以下のように訂正し、差し替えます。お手数をかけますが、よろしくお願いします。ごめんなさい。 m(_ _)m
Section4-2
p125 下の4行を差し替えます。
誤:
advance()を使うと〜方向になります。
正:
advancedBy()を使うとインデックスを前後に複数個移動できます。つまり、startIndexから5つ先、endIndexから3つ手前というようにインデックスを移動できます。引数が正のときに進める、負のときに戻る方向になります。
p.126のサンプルコード
[List]ストリングの途中の文字列を取り出す
[file]string_advance/ViewController.swift
誤:
// 先頭から5文字目
let index1 = advance(str.startIndex, 5)
// 末尾から4文字目
let index2 = advance(str.endIndex, -4)
正:
// 先頭から5文字目
let index1 = str.startIndex.advancedBy(5)
// 末尾から4文字目
let index2 = str.endIndex.advancedBy(-4)
サンプルのファイル名も次のように変更します。
誤:string_advance
正:string_advancedBy
[List]レンジ演算子を使ってストリングを取り出す
[file]string_range_operator/ViewController.swift
誤:
let start = advance(zero, 3)
let end = advance(zero, 6)
正:
let start = zero.advancedBy(3)
let end = zero.advancedBy(6)
[List]インデックスの手前/後ろのストリングを取り出す
[file]string_substringToFrom/ViewController.swift
誤:
let index = advance(str.startIndex, 5)
正:
let index = str.startIndex.advancedBy(5)
差し替えサンプルファイル
p126_sample.zip