SwiftUI Essentials (SwiftUI の本質)

ユーザー入力の処理



訳注:以下、必要な場所においては Mac と iPhone 両方のセクションを提供しています。
Mac → セクション 4、iPhone → セクション 104 とします。















    ModelData.swift


  1. import Foundation
  2. var landmarks: [Landmark] = load("landmarkData.json")
  3. func load<T: Decodable>(_ filename: String) -> T {
  4. let data: Data
  5. guard let file = Bundle.main.url(forResource: filename, withExtension: nil)
  6. else {
  7. fatalError("Couldn't find \(filename) in main bundle.")
  8. }
  9. do {
  10. data = try Data(contentsOf: file)
  11. } catch {
  12. fatalError("Couldn't load \(filename) from main bundle:\n\(error)")
  13. }
  14. do {
  15. let decoder = JSONDecoder()
  16. return try decoder.decode(T.self, from: data)
  17. } catch {
  18. fatalError("Couldn't parse \(filename) as \(T.self):\n\(error)")
  19. }
  20. }



上記のリストの 2 行目以下をこのように書き足します。



  1. import Foundation
  2. import Combine
  3. final class ModelData: ObservableObject {
  4. }
  5. var landmarks: [Landmark] = load("landmarkData.json")



上記のリストを以下のように書き換えます。



  1. final class ModelData: ObservableObject {
  2. var landmarks: [Landmark] = load("landmarkData.json")
  3. }



さらに上記のリストを以下のように書き換えます。



  1. final class ModelData: ObservableObject {
  2. @Published var landmarks: [Landmark] = load("landmarkData.json")
  3. }



セクション 1セクション 2セクション 3
セクション 4セクション 5セクション 6
セクション 101セクション 102セクション 103
セクション 104セクション 105セクション 106





目次
Xcode の新機能

フレームワーク

  • SwiftUI

  • ビューの作成と結合

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    ビルドリストとナビゲーション

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6

    セクション 7

    セクション 8


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    セクション 107

    セクション 108

    ユーザー入力の処理

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    パスとシェイプの描画

    セクション 1

    セクション 2

    セクション 3

    セクション 4


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    ビューと移行のアニメーション

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    複雑なインターフェースの構成

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    UI コントロールを扱う

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    UIKit とのインターフェース

    セクション 1

    セクション 2

    セクション 3

    セクション 4


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    watchOS アプリの作成

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    macOS アプリの作成

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6

    セクション 7


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    セクション 107