回答編集履歴

1

UserDefaults, UITextFieldDelegate について追記

2017/07/24 10:14

投稿

ykws
ykws

スコア1236

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- `UserDefault` はとてもシンプルな仕組みなので、
7
+ `UserDefaults` はとてもシンプルな仕組みなので、
8
8
 
9
9
  うまくいかないコードを載せてもらえれば助言できると思います。
10
10
 
@@ -19,3 +19,41 @@
19
19
  `TableView` を使うのが楽です。
20
20
 
21
21
  `TextField` の状態管理を `TableView` が各 `TableViewCell` として管理してくれるので。
22
+
23
+
24
+
25
+ `UserDefaults` に関して追記です。
26
+
27
+ これは型ごとに保存取得ができるようになっています。(おそらくこの認識が足りていないのかなと思いました)
28
+
29
+ [UserDefaults](https://developer.apple.com/documentation/foundation/userdefaults) の Setting Default Values 辺りを参照すると理解できると思います。
30
+
31
+
32
+
33
+ 以下のコードは `Bool` を保存しようとしていると思いますが、 `String` を保存してしまっています。
34
+
35
+
36
+
37
+ ```swift
38
+
39
+ defaults.set("Totally True", forKey: "HasAppBeenOpenedBefore")
40
+
41
+ ```
42
+
43
+
44
+
45
+ 例えば、以下のように、 `Bool` を保存したいときは、 `Bool` を渡せば期待する動作になります。
46
+
47
+
48
+
49
+ ```swfit
50
+
51
+ defaults.set(true, forKey: "HasAppBeenOpenedBefore")
52
+
53
+ ```
54
+
55
+
56
+
57
+ 自動で保存するには [UITextFieldDelegate](https://developer.apple.com/documentation/uikit/uitextfielddelegate) を活用すれば可能です。
58
+
59
+ `TextField` の状態の変化を受け取れるようになるので、実現したい内容に合わせて実装してみましょう。