回答編集履歴
4
編集
test
CHANGED
@@ -5,3 +5,23 @@
|
|
5
5
|
print(userDefaults.object(forKey: "UserName"))
|
6
6
|
|
7
7
|
```ってしてみたら`nil`って表示されない?
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
---
|
12
|
+
|
13
|
+
viewDidLoad()の中で、初期値を設定する前に値を読み込んでいます。
|
14
|
+
|
15
|
+
初期値を全て登録してから、値を読み込むようにコードの順番を変更してください。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
readData()はいつも"NickName"をキーとして保存してる文字列を返すようになっています。各々のラベルに表示する文字列を返す用に変更してください。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
userDefaultは保存処理をすると値が上書きされるので、func hozonButton()内部の`Key の値を削除`部分は不要です。
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
とりあえず直してみてください。
|
3
訂正
test
CHANGED
@@ -1,67 +1,7 @@
|
|
1
1
|
エラーの出る行の上で、
|
2
2
|
|
3
|
-
|
3
|
+
```swift
|
4
4
|
|
5
|
-
|
5
|
+
print(userDefaults.object(forKey: "UserName"))
|
6
6
|
|
7
|
-
let str: String = userDefaults.object(forKey: "NickName") as! String
|
8
|
-
|
9
|
-
let _: String = userDefaults.object(forKey: "UserName") as! String
|
10
|
-
|
11
|
-
let _: String = userDefaults.object(forKey: "SendEmail") as! String
|
12
|
-
|
13
|
-
let _: String = userDefaults.object(forKey: "SendPhone") as! String
|
14
|
-
|
15
|
-
let _: String = userDefaults.object(forKey: "NextSendEmail") as! String
|
16
|
-
|
17
|
-
let _: String = userDefaults.object(forKey: "NextSendPhone") as! String
|
18
|
-
|
19
|
-
return str
|
20
|
-
|
21
|
-
}
|
22
|
-
|
23
|
-
の中身は3行目いかが意味不明だけど、処理の流れを追っていけば、なんでnilになるかもわかると思う。
|
24
|
-
|
25
|
-
viewDidLaoadのなかで初期値を設定してる順番とreadDateしている順番を一つ一つみていってください。
|
26
|
-
|
27
|
-
|
7
|
+
```ってしてみたら`nil`って表示されない?
|
28
|
-
|
29
|
-
super.viewDidLoad()
|
30
|
-
|
31
|
-
nickNameTextField.delegate = self
|
32
|
-
|
33
|
-
userNameTextField.delegate = self
|
34
|
-
|
35
|
-
sendEmailTextField.delegate = self
|
36
|
-
|
37
|
-
sendPhoneNumber.delegate = self
|
38
|
-
|
39
|
-
nextSendEmailTextField.delegate = self
|
40
|
-
|
41
|
-
nextSendPhoneNumber.delegate = self
|
42
|
-
|
43
|
-
userDefaults.register(defaults: ["NickName": "ニックネームを入力"])
|
44
|
-
|
45
|
-
nickNameLabel.text = readData()
|
46
|
-
|
47
|
-
userDefaults.register(defaults: ["UserName": "名前を入力"])
|
48
|
-
|
49
|
-
userNameLabel.text = readData()
|
50
|
-
|
51
|
-
userDefaults.register(defaults: ["SendEmail": "Emailを入力"])
|
52
|
-
|
53
|
-
sendEmailLabel.text = readData()
|
54
|
-
|
55
|
-
userDefaults.register(defaults: ["SendPhone": "電話番号を入力"])
|
56
|
-
|
57
|
-
sendPhoneLabel.text = readData()
|
58
|
-
|
59
|
-
userDefaults.register(defaults: ["NextSendEmail": "Emailを入力"])
|
60
|
-
|
61
|
-
nextSendEmailLabel.text = readData()
|
62
|
-
|
63
|
-
userDefaults.register(defaults: ["NextSendPhone": "電話番号を入力"])
|
64
|
-
|
65
|
-
nextSendPhoneLabel.text = readData()
|
66
|
-
|
67
|
-
}
|
2
訂正
test
CHANGED
@@ -1,56 +1,32 @@
|
|
1
1
|
エラーの出る行の上で、
|
2
2
|
|
3
3
|
print(userDefaults.object(forKey: "UserName"))ってしてみたらnilって表示されない?
|
4
|
-
|
5
|
-
|
6
4
|
|
7
5
|
func readData() -> String {
|
8
6
|
|
9
7
|
let str: String = userDefaults.object(forKey: "NickName") as! String
|
10
8
|
|
11
|
-
|
12
|
-
|
13
9
|
let _: String = userDefaults.object(forKey: "UserName") as! String
|
14
|
-
|
15
|
-
|
16
10
|
|
17
11
|
let _: String = userDefaults.object(forKey: "SendEmail") as! String
|
18
12
|
|
19
|
-
|
20
|
-
|
21
13
|
let _: String = userDefaults.object(forKey: "SendPhone") as! String
|
22
|
-
|
23
|
-
|
24
14
|
|
25
15
|
let _: String = userDefaults.object(forKey: "NextSendEmail") as! String
|
26
16
|
|
27
|
-
|
28
|
-
|
29
17
|
let _: String = userDefaults.object(forKey: "NextSendPhone") as! String
|
30
|
-
|
31
|
-
|
32
18
|
|
33
19
|
return str
|
34
20
|
|
35
|
-
|
36
|
-
|
37
21
|
}
|
38
|
-
|
39
|
-
|
40
22
|
|
41
23
|
の中身は3行目いかが意味不明だけど、処理の流れを追っていけば、なんでnilになるかもわかると思う。
|
42
24
|
|
43
|
-
|
44
|
-
|
45
25
|
viewDidLaoadのなかで初期値を設定してる順番とreadDateしている順番を一つ一つみていってください。
|
46
|
-
|
47
|
-
|
48
26
|
|
49
27
|
override func viewDidLoad() {
|
50
28
|
|
51
29
|
super.viewDidLoad()
|
52
|
-
|
53
|
-
|
54
30
|
|
55
31
|
nickNameTextField.delegate = self
|
56
32
|
|
@@ -64,42 +40,28 @@
|
|
64
40
|
|
65
41
|
nextSendPhoneNumber.delegate = self
|
66
42
|
|
67
|
-
|
68
|
-
|
69
43
|
userDefaults.register(defaults: ["NickName": "ニックネームを入力"])
|
70
44
|
|
71
45
|
nickNameLabel.text = readData()
|
72
|
-
|
73
|
-
|
74
46
|
|
75
47
|
userDefaults.register(defaults: ["UserName": "名前を入力"])
|
76
48
|
|
77
49
|
userNameLabel.text = readData()
|
78
50
|
|
79
|
-
|
80
|
-
|
81
51
|
userDefaults.register(defaults: ["SendEmail": "Emailを入力"])
|
82
52
|
|
83
53
|
sendEmailLabel.text = readData()
|
84
|
-
|
85
|
-
|
86
54
|
|
87
55
|
userDefaults.register(defaults: ["SendPhone": "電話番号を入力"])
|
88
56
|
|
89
57
|
sendPhoneLabel.text = readData()
|
90
58
|
|
91
|
-
|
92
|
-
|
93
59
|
userDefaults.register(defaults: ["NextSendEmail": "Emailを入力"])
|
94
60
|
|
95
61
|
nextSendEmailLabel.text = readData()
|
96
|
-
|
97
|
-
|
98
62
|
|
99
63
|
userDefaults.register(defaults: ["NextSendPhone": "電話番号を入力"])
|
100
64
|
|
101
65
|
nextSendPhoneLabel.text = readData()
|
102
66
|
|
103
|
-
|
104
|
-
|
105
67
|
}
|
1
訂正
test
CHANGED
@@ -1,3 +1,105 @@
|
|
1
1
|
エラーの出る行の上で、
|
2
2
|
|
3
3
|
print(userDefaults.object(forKey: "UserName"))ってしてみたらnilって表示されない?
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
func readData() -> String {
|
8
|
+
|
9
|
+
let str: String = userDefaults.object(forKey: "NickName") as! String
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
let _: String = userDefaults.object(forKey: "UserName") as! String
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
let _: String = userDefaults.object(forKey: "SendEmail") as! String
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
let _: String = userDefaults.object(forKey: "SendPhone") as! String
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
let _: String = userDefaults.object(forKey: "NextSendEmail") as! String
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
let _: String = userDefaults.object(forKey: "NextSendPhone") as! String
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
return str
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
}
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
の中身は3行目いかが意味不明だけど、処理の流れを追っていけば、なんでnilになるかもわかると思う。
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
viewDidLaoadのなかで初期値を設定してる順番とreadDateしている順番を一つ一つみていってください。
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
override func viewDidLoad() {
|
50
|
+
|
51
|
+
super.viewDidLoad()
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
nickNameTextField.delegate = self
|
56
|
+
|
57
|
+
userNameTextField.delegate = self
|
58
|
+
|
59
|
+
sendEmailTextField.delegate = self
|
60
|
+
|
61
|
+
sendPhoneNumber.delegate = self
|
62
|
+
|
63
|
+
nextSendEmailTextField.delegate = self
|
64
|
+
|
65
|
+
nextSendPhoneNumber.delegate = self
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
userDefaults.register(defaults: ["NickName": "ニックネームを入力"])
|
70
|
+
|
71
|
+
nickNameLabel.text = readData()
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
userDefaults.register(defaults: ["UserName": "名前を入力"])
|
76
|
+
|
77
|
+
userNameLabel.text = readData()
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
userDefaults.register(defaults: ["SendEmail": "Emailを入力"])
|
82
|
+
|
83
|
+
sendEmailLabel.text = readData()
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
userDefaults.register(defaults: ["SendPhone": "電話番号を入力"])
|
88
|
+
|
89
|
+
sendPhoneLabel.text = readData()
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
userDefaults.register(defaults: ["NextSendEmail": "Emailを入力"])
|
94
|
+
|
95
|
+
nextSendEmailLabel.text = readData()
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
userDefaults.register(defaults: ["NextSendPhone": "電話番号を入力"])
|
100
|
+
|
101
|
+
nextSendPhoneLabel.text = readData()
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
}
|