質問編集履歴

3

初心者マークつけました

2019/05/31 04:59

投稿

nikkori
nikkori

スコア20

test CHANGED
File without changes
test CHANGED
File without changes

2

関連するソースを追記しました。

2019/05/31 04:59

投稿

nikkori
nikkori

スコア20

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
-  var ava_mon: Int?
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.aaa.text = String(TestClass?.ava_mon) ?? ""
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
- Optional型がまだよくわかっおらずおかしな質問だったらごめんない!
107
+ xmlResponseは取得できいて一行上のcommentは正常に表示れます。

1

参考サイトの追記

2019/05/31 01:55

投稿

nikkori
nikkori

スコア20

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型がまだよくわかっておらず、おかしな質問だったらごめんなさい!