[Swift] App Lifecycle & ViewController LifeCycle
列挙
Enumはタイプなので、大文字モードを使用して名前を定義し、各モードを小文字モードとして定義します.
各case自体が一意の値です.1行で個別に定義したり、1行で複数を定義したりできます.
switch構文では、列挙値を一致させることができます.すべての場合(cases)、デフォルト値(default)を含める必要があります.
enum CompassPoint {
case north
case south
case east
case west
}
var directionToHead = CompassPoint.west
directionToHead = .east
directionToHead = .south
switch directionToHead {
case .north:
print("Lots of planets have a north")
case .south:
print("Watch out for penguins")
case .east:
print("Where the sun rises")
case .west:
print("Where the skies are blue")
}
// Prints "Watch out for penguins"
enum Planet {
case mercury, venus, earth, mars, jupiter, saturn, uranus, neptune
}
let somePlanet = Planet.earth
switch somePlanet {
case .earth:
print("Mostly harmless")
default:
print("Not a safe place for humans")
}
ランダム入力値を防止することで,入力値エラーの可能性を低減し,コードの信頼性を向上させる.文字列や整数など、入力する情報を入力するのではなく、選択できます.
列挙は、関連するデータのメンバーからなるデータ・オブジェクトです.
データ型との違い
配列、コレクション、バイナリなどの要素を削除または変更できます.ただし、列挙メンバーのenum定義を変更しない限り、列挙メンバーは削除または変更できません.
「開く」(Open)シェイプのメンバーは、定義時にコンパイラによって事前に知られることができます.したがって、エラーやエラーが発生した場合は、コンパイル時にエラーを認識できます.これにより、エラーの修復がより容易になります.集団データの場合は、実行時に検証できます.
必要性
入力する値を指定して、不要な値が無効にならないようにします.
制限された値からのみ選択できるように、ルールを事前に決定します.
元の値(RawValue)
値を
数字や文字列などの情報を伝える必要がある場合は、データだけで伝える意味は限られています.EnumのCase自体は独立した値ですが、内部に別の値を格納できます.
enum AppleDevice: String {
case iPhone = "아이폰"
case iPad = "아이패드"
case watch = "애플워치"
case mac = "맥킨토시"
case airPods = "에어팟"
}
一部のプロジェクトにのみ値を指定できます.この場合、値はcaseNameと同じになります.整数タイプの場合、割り当てられた最初のアイテムに基づいて+1ずつ増加します.
Alert
アプリケーションを使用する場合は、開発の観点から
이벤트
にUIを構成し、사용자
で確認する必要があります.すべてのアラートはAlert Controlで開始します.目覚まし時計はタイトル、メッセージ、および各動作をとります.@IBAction func showAlert(_ sender: UIButton) {
// 1. UIAlertController 생성: 밑바탕 + 타이틀 + 본문
let alert = UIAlertController(title: nil, message: nil, preferredStyle: .alert)
// 2. UIAlertAction 생성: 버튼들..
let ok = UIAlertAction(title: "아이폰이 왔다!", style: .default)
let ok2 = UIAlertAction(title: "아이폰 Max가 왔다!", style: .default)
let ipad = UIAlertAction(title: "아이패드가 왔다!", style: .destructive)
let watch = UIAlertAction(title: "애플와치가 왔다!", style: .cancel)
// 3. 1+2
alert.addAction(ok2)
alert.addAction(ok)
alert.addAction(ipad)
alert.addAction(watch)
// 4. Present
present(alert, animated: true, completion: nil)
}
システムが提供するフローティングフォーマットを設定できます.基本的なポップアップアラームalertと下から上への形式.actionSheetがあります.スタイルの変更には多くの制限があるため、ライブラリを直接カスタマイズしたり利用したりすることができます.
基本形式の.default、太字でハイライト表示します.cancelが赤くなる破壊性がある.
알람
に次の内容を確認します.Storyboard Reference
シーケンス画像ボードで作業する場合、ユーザインタフェースはコード作成よりも判断と可視化が容易であるが、ビューコントローラの増加に伴い、シーケンス画像ボードのロード時間が長くなり、アプリケーションのScene構造を理解することも複雑になる.また、コラボレーション時にStoryboardの所有者が競合する可能性があります.
したがって、シーケンスイメージボードを使用せずに100%のコードのみを使用するか、シーケンスイメージボードにビューコントローラを配置してシーケンスイメージボード自体を分割することができます.シーケンスイメージボードを使用する場合は、シーケンスイメージボードを使用して参照してください.
マルチシーケンスイメージボード
新しいシーケンスイメージボードファイル
Swift Package Manager
依存管理ツール.パッケージの検索と管理に使用します.アップルの公式サポート.XCode 11からはGUI環境の改善に伴いサポート環境がより安定しており、ファイルにパッケージを追加したりアドレスを追加したりすることで、簡単にパッケージを導入することができます.
Web開発においてNode Package Managerと同様の機能を持つツールであり、その他の依存管理ツールにはCocoapotとCartaが含まれる.
Cocoapotは依存性を追跡して自動的に管理できるので使いやすいが,構築速度が重く遅いという欠点がある.テープ・ライブラリは軽量ですが、サポート・ライブラリによっては比較的少ない制限があります.
Dependency Rule
サポートされている機能は、ライブラリのバージョンによって異なり、開発環境によっては(iOSのバージョン)適用されない場合があります.したがって、バージョンを使用する場合は、対応するgit-hub式の説明で注意し、使用する必要があります.バージョンルールの範囲で管理することもできます.
0.3.2
ライブラリ/フレーム
共通点:機能を利用できるクラスとコンポーネントから構成されています.
主導性は開発者にあり、開発者が必要に応じてコードを使用し、直接制御してカスタマイズすることができます.
사용자
の概念を採用した代表的な技術である.特定の概念抽象を提供するクラス、Componentなどからなる.主導的な地位はフレームワークの面にあるため、任務はフレームワークに従って行われる.
フレームとライブラリの違い
UserDefaults
通常、プログラムを実行してプロセスをメモリスタックに配置すると、内部ドライバコードの動作はメモリにのみ保持されます.したがって、画面切り替え時にメモリからコードを削除すると、そのコードは不正に収集され、消えてしまいます.
ただし、UserDefaultsは
제어의 역전
をサポートしています.Appleが提供するキー・バリュー・プライマリ・リポジトリは、Web開発におけるWebストレージ・オブジェクトlocalStorageに似ています.アプリケーションにデータを半永久的に格納することで、アプリケーションが閉じたり開いたりしてもデータを保持できます.内部保護された
영속적인 데이터 활용
によって各アプリケーションのplistファイルが作成され、データが管理されます.これは、すべてのデータがユーザーの欠陥によって格納されることを意味するのではなく、簡単な設定値、環境値、および非常に少ない単一のデータ値を格納します.ex.自動ログインするかどうか、通知を受信するかどうか、アプリケーションを支払うかどうか、電子メール、ニックネームなどのユーザープリファレンス、アプリケーションテーマ、ポップアップするかどうかなど
データが永続的で、アプリケーションが永続的である場合は、削除するかどうかにかかわらず、データを保持する場合は、バックアップ/リカバリ、Keychain、iCloud同期をサポートすることで補足できます.
管理はJSONタイプのデータ構造と同様で、EncoderとDecoderで変換・利用する必要があります.
🔗 コラボレーション識別
Reference
この問題について([Swift] App Lifecycle & ViewController LifeCycle), 我々は、より多くの情報をここで見つけました https://velog.io/@simoniful/swift-App-Lifecycle-ViewController-LifeCycleテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol