回答編集履歴
3
unwrapいらんかった‥
answer
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
let keys = ["name", "id"]
|
13
13
|
let mirror = Mirror(reflecting: user)
|
14
14
|
keys.forEach { key in
|
15
|
-
if let child = mirror.children.first(where: {$0.label
|
15
|
+
if let child = mirror.children.first(where: {$0.label == key}) {
|
16
16
|
print("(key) = (child.value)")
|
17
17
|
}
|
18
18
|
}
|
2
mirror
answer
CHANGED
@@ -1,3 +1,30 @@
|
|
1
|
+
# Mirror
|
2
|
+
|
3
|
+
調べながら書いたので変なところがあるかも知れませんが。
|
4
|
+
|
5
|
+
```swift
|
6
|
+
class User {
|
7
|
+
var id: Int = 123
|
8
|
+
var name: String = "hogehoge"
|
9
|
+
}
|
10
|
+
|
11
|
+
let user = User()
|
12
|
+
let keys = ["name", "id"]
|
13
|
+
let mirror = Mirror(reflecting: user)
|
14
|
+
keys.forEach { key in
|
15
|
+
if let child = mirror.children.first(where: {$0.label ?? "" == key}) {
|
16
|
+
print("(key) = (child.value)")
|
17
|
+
}
|
18
|
+
}
|
19
|
+
```
|
20
|
+
|
21
|
+
```text
|
22
|
+
name = hogehoge
|
23
|
+
id = 123
|
24
|
+
```
|
25
|
+
|
26
|
+
# Dictionary
|
27
|
+
|
1
28
|
Dictionaryでいいんじゃないですかね。
|
2
29
|
|
3
30
|
```swift
|
1
typo
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
Dictionaryでいいんじゃないですかね。
|
2
2
|
|
3
3
|
```swift
|
4
4
|
let user: [String:Any] = ["id": 1, "name": "ユーザー"]
|