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