質問するログイン新規登録

回答編集履歴

1

例を追記

2015/12/01 15:30

投稿

_Kentarou
_Kentarou

スコア8490

answer CHANGED
@@ -8,4 +8,56 @@
8
8
  // これもエラーになります。
9
9
  let intVal = total
10
10
 
11
- ```
11
+ ```
12
+
13
+ 以下のコードだと宣言だけして初期値をinitで設定できますがtext1がnilの為に落ちます...
14
+
15
+ ```swift
16
+
17
+ let total: Int = 0
18
+ var text1: String?
19
+
20
+ // 宣言だけをする
21
+ let intVal: Int!
22
+
23
+ required init(coder aDecoder: NSCoder) {
24
+
25
+ // 初期値を設定
26
+ intVal = Int(text1!)
27
+ super.init(coder: aDecoder)!
28
+ }
29
+ ```
30
+
31
+ letで宣言してあるのでややこしいですが、やりたいことは以下のコードでできると思います。
32
+
33
+ ```swift
34
+
35
+ let total: Int = 0
36
+
37
+ // 初期値を設定する
38
+ var text1: String? = "123"
39
+
40
+ // 宣言だけをする
41
+ let intVal: Int!
42
+
43
+ required init(coder aDecoder: NSCoder) {
44
+
45
+ // 初期値を設定
46
+ intVal = Int(text1!)
47
+ //=> 123
48
+ super.init(coder: aDecoder)!
49
+ }
50
+ ```
51
+
52
+ 単純にサンプルを試したいだけでしたらviewDidLoad()に書けば良いと思います。
53
+
54
+ ```swift
55
+
56
+ override func viewDidLoad() {
57
+ super.viewDidLoad()
58
+
59
+ var text1: String? = "123"
60
+ let intVal = Int(text1!)
61
+ }
62
+
63
+ ```