質問編集履歴
3
初心者マークつけました
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|
2
関連するソースを追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,9 +10,11 @@
|
|
10
10
|
|
11
11
|
```swift
|
12
12
|
|
13
|
-
class TestClass{
|
13
|
+
class TestClass:XMLMappable{
|
14
14
|
|
15
|
+
var comment: String?
|
16
|
+
|
15
|
-
|
17
|
+
var ava_mon: Int?
|
16
18
|
|
17
19
|
(略)
|
18
20
|
|
@@ -20,9 +22,57 @@
|
|
20
22
|
|
21
23
|
|
22
24
|
|
23
|
-
|
25
|
+
class ResultViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, XMLParserDelegate {
|
24
26
|
|
27
|
+
@IBOutlet weak var comment: UITextField!
|
28
|
+
|
29
|
+
@IBOutlet weak var ava_mon: UITextField!
|
30
|
+
|
31
|
+
override func viewDidLoad() {
|
32
|
+
|
33
|
+
super.viewDidLoad()
|
34
|
+
|
35
|
+
request()
|
36
|
+
|
37
|
+
}
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
func request() {
|
42
|
+
|
43
|
+
if let url = URL(string: "https:xxxxxxx") {
|
44
|
+
|
45
|
+
let request = URLRequest(url: url)
|
46
|
+
|
47
|
+
let task: URLSessionTask = URLSession.shared.dataTask(with: request, completionHandler: { data, response, error in
|
48
|
+
|
49
|
+
do {
|
50
|
+
|
51
|
+
let xmlDictionary = try XMLSerialization.xmlObject(with: data) as? [String: Any]
|
52
|
+
|
53
|
+
let xmlResponse = XMLMapper<TestClass>().map(XMLObject: xmlDictionary)
|
54
|
+
|
55
|
+
|
56
|
+
|
25
|
-
self.
|
57
|
+
self.comment.text = xmlResponse?.comment ?? ""
|
58
|
+
|
59
|
+
self.ava_mon.text = String(xmlResponse?.ava_mon) ?? ""// ここでエラー
|
60
|
+
|
61
|
+
} catch {
|
62
|
+
|
63
|
+
print("Serialization error occurred: (error.localizedDescription)")
|
64
|
+
|
65
|
+
}
|
66
|
+
|
67
|
+
})
|
68
|
+
|
69
|
+
// 通信開始
|
70
|
+
|
71
|
+
task.resume()
|
72
|
+
|
73
|
+
}
|
74
|
+
|
75
|
+
}
|
26
76
|
|
27
77
|
```
|
28
78
|
|
@@ -46,4 +96,12 @@
|
|
46
96
|
|
47
97
|
|
48
98
|
|
99
|
+
必要と思われるコードを載せました。XMLでレスポンスが帰ってくるWebAPIを呼び出して表示する処理です。
|
100
|
+
|
101
|
+
XMLMapperというライブラリを利用しています。
|
102
|
+
|
103
|
+
https://github.com/gcharita/XMLMapper
|
104
|
+
|
105
|
+
XMLをオブジェクトにマップしてくれるライブラリです。
|
106
|
+
|
49
|
-
|
107
|
+
xmlResponseは取得できていて、一行上のcommentは正常に表示されます。
|
1
参考サイトの追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -40,6 +40,10 @@
|
|
40
40
|
|
41
41
|
回避するために一旦別の変数に入れてnilチェックをしようかと思ったのですが、一行でやる方法はないのかと思い質問させていただきました。
|
42
42
|
|
43
|
+
この辺のサイトを参考にしています。
|
44
|
+
|
45
|
+
https://fukatsu.tech/optional-swift
|
46
|
+
|
43
47
|
|
44
48
|
|
45
49
|
Optional型がまだよくわかっておらず、おかしな質問だったらごめんなさい!
|