質問編集履歴

3

リクエストの追加

2020/04/15 01:34

投稿

Mama_ma_ma
Mama_ma_ma

スコア5

test CHANGED
File without changes
test CHANGED
@@ -47,6 +47,40 @@
47
47
  var gender: String
48
48
 
49
49
  var age: Int
50
+
51
+ }
52
+
53
+ //jsonデータの取得
54
+
55
+ public func getJson() {
56
+
57
+
58
+
59
+ let url = "該当のurl"
60
+
61
+ let headers: HTTPHeaders = ["Content-Type": "application/json"]
62
+
63
+ Alamofire.request(url, method: .get, encoding: URLEncoding(destination: .queryString), headers: headers).responseJSON {response in
64
+
65
+ guard let data = response.data else {
66
+
67
+ return
68
+
69
+ }
70
+
71
+ do {
72
+
73
+ let jsonData = try JSONDecoder().decode([jsonModel].self, from: data)
74
+
75
+
76
+
77
+ } catch let error {
78
+
79
+ print("Error: (error)")
80
+
81
+ }
82
+
83
+ }
50
84
 
51
85
  }
52
86
 

2

ソース修正

2020/04/15 01:34

投稿

Mama_ma_ma
Mama_ma_ma

スコア5

test CHANGED
File without changes
test CHANGED
@@ -68,7 +68,9 @@
68
68
 
69
69
  if let _mergeJsonData = mergeJsonData[data.name]!["value"] {
70
70
 
71
+ print(mergeJsonData[data.name]!["value"]!) //この時点では0が出力される
72
+
71
- tmp = cast(value: mergeJsonData[data.name]!["value"] as! Double)!
73
+ let tmp = cast(value: mergeJsonData[data.name]!["value"] as! Int)! //nilエラー
72
74
 
73
75
  mergeJsonData[data.name]!["value"] = tmp + data.value
74
76
 

1

ソースコードを一部編集しました

2020/04/15 01:10

投稿

Mama_ma_ma
Mama_ma_ma

スコア5

test CHANGED
File without changes
test CHANGED
@@ -56,35 +56,31 @@
56
56
 
57
57
  for data in jsonData {
58
58
 
59
- if (gender.contains(data.gender) && age.contains(data.age)) {
59
+ if let _mergeJsonData = mergeJsonData[data.name] {
60
60
 
61
- if let _mergeJsonData = mergeJsonData[data.name] {
61
+ mergeJsonData[data.name] = mergeJsonData[data.name]
62
62
 
63
- mergeJsonData[data.name] = mergeJsonData[data.name]
63
+ } else {
64
64
 
65
- } else {
65
+ mergeJsonData.updateValue(["value": 0, "last_value": 0, "number": 0], forKey: data.name)
66
66
 
67
- mergeJsonData.updateValue(["value": 0, "last_value": 0, "number": 0], forKey: data.name)
67
+ }
68
68
 
69
- }
69
+ if let _mergeJsonData = mergeJsonData[data.name]!["value"] {
70
70
 
71
- if let _mergeJsonData = mergeJsonData[data.name]!["value"] {
71
+ tmp = cast(value: mergeJsonData[data.name]!["value"] as! Double)!
72
72
 
73
- tmp = cast(value: mergeJsonData[data.name]!["value"] as! Double)!
73
+ mergeJsonData[data.name]!["value"] = tmp + data.value
74
74
 
75
- mergeJsonData[data.name]!["value"] = tmp + data.value
75
+ } else {
76
76
 
77
- } else {
78
-
79
- mergeJsonData[data.name]!.updateValue(data.value, forKey: "value")
77
+ mergeJsonData[data.name]!.updateValue(data.value, forKey: "value")
80
-
81
- }
82
-
83
-
84
78
 
85
79
  }
86
80
 
87
81
  }
82
+
83
+
88
84
 
89
85
  private func cast(value: Any) -> Double? {
90
86