回答編集履歴

1

削除

2018/10/11 14:43

投稿

TEM
TEM

スコア15

test CHANGED
@@ -1,145 +1 @@
1
- ```Swift
2
-
3
- import Foundation
4
-
5
-
6
-
7
- struct MetaData: Codable {
8
-
9
- let allcount: Int
10
-
11
- }
12
-
13
-
14
-
15
- struct NoveiOverview: Codable {
16
-
17
- var title: String
18
-
19
- var ncode: String
20
-
21
- var userid: Int
22
-
23
- var writer: String
24
-
25
- var story: String
26
-
27
-
28
-
29
- var generalLastup: String
30
-
31
- var globalPoint: Int
32
-
33
-
34
-
35
- enum CodingKeys: String, CodingKey {
36
-
37
- case title = "title"
38
-
39
- case ncode = "ncode"
40
-
41
- case userid = "userid"
42
-
43
- case writer = "writer"
44
-
45
- case story = "story"
46
-
47
- case generalLastup = "general_lastup"
48
-
49
- case globalPoint = "global_point"
50
-
51
- }
52
-
53
- }
54
-
55
-
56
-
57
- struct NovelOverviewList {
58
-
59
- let metaData: MetaData
60
-
61
- let novelOverviews: [NoveiOverview]
62
-
63
-
64
-
65
- init(metaData: MetaData, novelOverviews: [NoveiOverview]) {
66
-
67
- self.metaData = metaData
68
-
69
- self.novelOverviews = novelOverviews
70
-
71
-
72
-
73
- print(self.metaData)
74
-
75
- print(self.novelOverviews)
76
-
77
- }
78
-
79
-
80
-
81
- }
82
-
83
-
84
-
85
- extension NovelOverviewList: Decodable {
86
-
87
-
88
-
89
- init(from decoder: Decoder) throws {
90
-
91
- var meta: MetaData = MetaData(allcount: 0)
92
-
93
- var overviews: [NoveiOverview] = []
94
-
95
- var unkeyedContainer = try decoder.unkeyedContainer()
96
-
97
-
98
-
99
- while !unkeyedContainer.isAtEnd {
100
-
101
- // unkeyedContainer.currentIndex: decodeが成功するたびにインクリメントされる
102
-
103
-
104
-
105
- do {
106
-
107
- // index 0: MetaData
108
-
109
- if unkeyedContainer.currentIndex == 0 {
110
-
111
- meta = try unkeyedContainer.decode(MetaData.self)
112
-
113
-
114
-
115
- } else {
116
-
117
- let overview = try unkeyedContainer.decode(NoveiOverview.self)
118
-
119
- overviews.append(overview)
120
-
121
- }
122
-
123
-
124
-
125
- } catch {
1
+ 間違った情報のため削除
126
-
127
- print("error")
128
-
129
- }
130
-
131
-
132
-
133
- }
134
-
135
-
136
-
137
- self.init(metaData: meta, novelOverviews: overviews)
138
-
139
- }
140
-
141
- }
142
-
143
-
144
-
145
- ```