回答編集履歴
2
分かりやすいように書き換えた
answer
CHANGED
@@ -1,14 +1,13 @@
|
|
1
|
-
エラー
|
1
|
+
このエラーは分かりにくいのですが、`Optional`型にも同名の`map`関数があり、そちらが使われています。
|
2
2
|
|
3
|
+
以下のように`?`を付けてoptional chainにすることで Arrayの方のmapが使われます。
|
4
|
+
|
3
5
|
```swift
|
4
|
-
let area = value?["area"] as? [[String: Any]]
|
6
|
+
let area = value?["area"] as? [[String: Any]] // キャストする型を明示
|
5
|
-
let arreaNameList = area?.map{ $0["name"] as! String }
|
7
|
+
let arreaNameList = area?.map{ $0["name"] as! String } // オプショナルチェインに
|
6
8
|
```
|
9
|
+
----
|
7
10
|
|
8
|
-
`Optional`型にも同名の`map`関数があり、`?`を付けていないのでそちらが選ばれています。
|
9
|
-
|
10
|
-
|
11
|
-
|
12
11
|
ちなみに`Optional`型の`map`関数はnilでない時のみ引数の関数を実行します。
|
13
12
|
|
14
13
|
```swift
|
1
抜けがあったので修正
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
エラーが分かりにくいのですが、
|
2
2
|
|
3
3
|
```swift
|
4
|
-
let area = value?["area"]
|
4
|
+
let area = value?["area"] as? [[String: Any]]
|
5
5
|
let arreaNameList = area?.map{ $0["name"] as! String }
|
6
6
|
```
|
7
7
|
|