Swift実践入門

サポートページ

ダウンロード

以下のファイルをダウンロードできます。圧縮ファイルをダウンロードしていただき、適宜解凍してご利用ください。
なお、書籍内容に正誤が確認されましたため、サンプルファイルを一部修正しました。2017年7月9日以前にダウンロードされた方は、お手数ですが、再度ダウンロードをお願いいたします。

(2017年7月10日最終更新)

ダウンロード
サンプルファイル

お詫びと訂正(正誤表)

本書の以下の部分に誤りがありました。ここに訂正するとともに、ご迷惑をおかけしたことを深くお詫び申し上げます。

(2018年11月1日最終更新)

P.378 2つ目のコードの1行目

誤

let client = APIClient()

正

let client = GitHubClient()


(以下2017年12月18日更新)

P.67 コードの7行目

誤

var c = b

正

var c = a


(以下、2017年7月10日更新)

第1刷をお持ちの方へ(2刷は修正済み)

P.86 コードの6行目

誤

case 0..<Int.max:
    print("aは正の値です")

正

case 1..<Int.max:
    print("aは正の値です")


P.315 下から6〜7行目

誤

case let .success(name):
    print(".success: \(name)")

正

case let .success(user):
    print(".success: \(user)")


P.322 最終段落とそれに続くコード

誤  関数内で引数のクロージャが発生させるエラーを処理し、別のエラーを発生させることもできます。次の例では、引数throwingClosureが発生させるエラーSomeError.OriginalErrorを処理し、catch節内で別のエラーSomeError.ConvertedErrorを発生させています。

enum SomeError: Error {
    case originalError
    case convertedError
}

func rethorwingFunction(_ throwingClosure: () throws -> Void) rethrows {
    do {
        try throwingClosure()
    } catch {
        throw SomeError.ConvertedError
    }
}

do {
    try rethorwingFunction {
        throw SomeError.OriginalError
    }
} catch {
    error // ConvertedError
}

正  関数内で引数のクロージャが発生させるエラーを処理し、別のエラーを発生させることもできます。次の例では、引数throwingClosureが発生させるエラーSomeError.originalErrorを処理し、catch節内で別のエラーSomeError.convertedErrorを発生させています。

enum SomeError: Error {
    case originalError
    case convertedError
}

func rethorwingFunction(_ throwingClosure: () throws -> Void) rethrows {
    do {
        try throwingClosure()
    } catch {
        throw SomeError.convertedError
    }
}

do {
    try rethorwingFunction {
        throw SomeError.originalError
    }
} catch {
    error // ConvertedError
}


(以下、2017年5月29日更新)

P.302 2段落目(2箇所)

誤 cancelledプロパティ
正 isCancelledプロパティ

(以下、2017年5月25日更新)

P.137 2つ目のコード

誤
didSet {
    プロパティの変更前に実行する文
}
正
didSet {
    プロパティの変更後に実行する文
}

(以下、2017年3月15日更新)

P.xxi 13.6節の見出し

誤 アサーションよるデバッグ時のプログラムの終了
正 アサーションによるデバッグ時のプログラムの終了

P.44 下から9行目

誤 let characters = characters.characters
正 let characters = string.characters

P.177 8行目

誤 続いて2段階初期について解説します。
正 続いて2段階初期化について解説します。

P.264 8行目

誤 guard let id = json["age"] asς Int,
正 guard let id = json["id"] asς Int,

P.264 実行結果

誤 Invalid JSON
正 id: 123, name: Yusei Nishiyama

P.339 13.6節の見出し

誤 アサーションよるデバッグ時のプログラムの終了
正 アサーションによるデバッグ時のプログラムの終了

P.397 下から6行目

誤 print(type(of: objcClass.nonParameterizedDict))
正 print(type(of: objcClass.array))