Swift実践入門 ──直感的な文法と安全性を兼ね備えた言語

サポートページ

この記事を読むのに必要な時間:およそ 0.5 分

ダウンロード

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

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

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

お詫びと訂正

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

(2017年8月8日最終更新)

P.67 実行結果の最終行


b: type=ImplicitlyUnwrappedOptional, value=Optional("a")


b: type=ImplicitlyUnwrappedOptional, value=Optional("b")


(以下,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))