Skip to content

Commit 828b4e6

Browse files
author
Mccc
committed
Merge branch 'develop'
2 parents e27e24d + 7819ff6 commit 828b4e6

21 files changed

Lines changed: 1052 additions & 859 deletions

Example/Pods/Pods.xcodeproj/project.pbxproj

Lines changed: 486 additions & 499 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Example/SmartCodable/Smart/1.Introduce(使用介绍)/Introduce_9ViewController.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,16 @@ class Introduce_9ViewController: BaseCompatibilityViewController {
2121
]
2222

2323
guard let model = Model.deserialize(from: dict) else { return }
24-
print(model.color.peel)
24+
print(model.color)
2525
}
2626
}
2727

2828

2929
extension Introduce_9ViewController {
3030

3131
struct Model: SmartCodable {
32-
var color: SmartColor = .color(UIColor.white)
32+
@SmartHexColor
33+
var color: UIColor? = .white
3334
}
3435
}
3536

Example/SmartCodable/Smart/2.Strategy(解码策略)/混合使用/MixDecodingViewController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ extension MixDecodingViewController {
5858
// var date2: Date?
5959
// var data: Data?
6060
// var url: URL?
61-
62-
// var color: SmartColor?
61+
// @SmartHexColor
62+
// var color: UIColor?
6363

6464
// case 1 【解析前】:解析忽略
6565
// enum CodingKeys: CodingKey {

Example/SmartCodable/Smart/2.Strategy(解码策略)/解码中/局部策略/CustomDecodingValueViewContriller.swift

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class CustomDecodingValueViewContriller: BaseViewController {
5353
}
5454

5555
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
56-
view.backgroundColor = model?.color?.peel
56+
view.backgroundColor = model?.color
5757
// if let url = model?.url {
5858
// UIApplication.shared.open(url)
5959
// }
@@ -77,7 +77,8 @@ extension CustomDecodingValueViewContriller {
7777
var url: URL?
7878

7979
var ignoreKey: String?
80-
var color: SmartColor?
80+
@SmartHexColor
81+
var color: UIColor?
8182

8283
var sub: SmartSubModel?
8384

@@ -94,16 +95,17 @@ extension CustomDecodingValueViewContriller {
9495
CodingKeys.cgFloat <--- CGFloatTransformer(),
9596

9697
CodingKeys.url <--- SmartURLTransformer(prefix: "https://"),
97-
CodingKeys.date2 <--- SmartDateTransformer(),
98-
CodingKeys.date1 <--- SmartDateFormatTransformer(format)
98+
CodingKeys.date2 <--- SmartDateTransformer(strategy: .timestamp),
99+
CodingKeys.date1 <--- SmartDateTransformer(strategy: .formatted(format))
99100
]
100101
}
101102
}
102103

103104
struct SmartSubModel: SmartCodable {
104105

105106
var subDate: Date?
106-
var subColor: SmartColor?
107+
@SmartHexColor
108+
var subColor: UIColor?
107109
var subData: Data?
108110

109111

@@ -117,8 +119,7 @@ extension CustomDecodingValueViewContriller {
117119
[
118120
CodingKeys.subData <--- SmartDataTransformer(),
119121

120-
CodingKeys.subDate <--- SmartDateTransformer(),
121-
CodingKeys.subColor <--- SmartHexColorTransformer()
122+
CodingKeys.subDate <--- SmartDateTransformer(strategy: .timestamp),
122123
]
123124
}
124125
}

Example/SmartCodable/TestViewController.swift

Lines changed: 56 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -43,39 +43,70 @@ class TestViewController: BaseViewController {
4343
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
4444

4545
let dict: [String: Any] = [
46-
"height": "1729402611000",
47-
"sub": [
48-
"name": "Mccc"
49-
]
46+
"color": "000000",
47+
"color1": "ffffff",
48+
"color2": "#000000",
49+
"color3": "0xffffff",
50+
"date": "2024-02-01",
51+
"date1": "2024-02-01 11:11",
52+
"date2": "2024-02-01 11:11:11",
53+
"date3": "1746501765",
54+
"date4": "1746501764000"
5055
]
56+
5157
let model = Model.deserialize(from: dict)
52-
print(model?.height)
53-
print(model?.sub?.name)
54-
print(model?.sub?.s)
55-
}
56-
57-
enum Status: Int, SmartCaseDefaultable {
58-
case a = 1
59-
case unown = -1
60-
}
61-
62-
class BaseModel: NSObject { }
63-
64-
class Model: BaseModel, SmartCodable {
65-
var height: Double?
66-
var sub: SubModel?
58+
// print(model?.color)
59+
// print(model?.color2)
60+
// print(model?.color3)
61+
62+
print(model?.date)
63+
print(model?.date1)
64+
print(model?.date2)
65+
print(model?.date3)
66+
print(model?.date4)
67+
68+
print("\n\n")
6769

68-
required override init() { }
70+
71+
let transDict = model?.toJSONString(prettyPrint: true) ?? ""
72+
print(transDict)
73+
6974
}
75+
7076

71-
class SubModel: BaseModel, SmartCodable {
72-
var name: String = ""
73-
var s: Status = .unown
77+
struct Model: SmartCodable {
78+
//
79+
// @SmartHexColor
80+
// var color: UIColor?
81+
//
82+
// @SmartHexColor
83+
// var color1: UIColor?
84+
// @SmartHexColor
85+
// var color2: UIColor?
86+
// @SmartHexColor
87+
// var color3: UIColor?
88+
7489

75-
required override init() { }
90+
@SmartDate
91+
var date: Date?
92+
@SmartDate
93+
var date1: Date?
94+
@SmartDate
95+
var date2: Date?
96+
@SmartDate
97+
var date3: Date?
98+
@SmartDate
99+
var date4: Date?
100+
101+
102+
103+
// static func mappingForValue() -> [SmartValueTransformer]? {
104+
// [
105+
// CodingKeys.height <--- SmartDateTransformer(isMilliseconds: true)
106+
// ]
107+
// }
76108
}
77109
}
78110

79111

80112

81-

Example/SmartCodable/测试用例/编码/CustomKey/Encode_CustomKeyViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ extension Encode_CustomKeyViewController {
5656
let tf = DateFormatter()
5757
tf.dateFormat = "yyyy-MM-dd"
5858
return [
59-
CodingKeys.aKey <--- SmartDateFormatTransformer(tf),
59+
CodingKeys.aKey <--- SmartDateTransformer(strategy: .formatted(tf)),
6060
CodingKeys.bKey <--- SmartURLTransformer(prefix: "https://")
6161
]
6262
}

Example/SmartCodable/测试用例/编码/SpecialData/Encode_SpecialData_colorViewController.swift

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,8 @@ class Encode_SpecialData_colorViewController: BaseViewController {
3434

3535
extension Encode_SpecialData_colorViewController {
3636
struct Model: SmartCodable {
37-
var a: SmartColor?
38-
39-
static func mappingForValue() -> [SmartValueTransformer]? {
40-
return [
41-
CodingKeys.a <--- SmartHexColorTransformer()
42-
]
43-
}
37+
@SmartHexColor
38+
var a: UIColor?
4439
}
4540
}
4641

Example/SmartCodable/测试用例/编码/SpecialData/Encode_SpecialData_dateViewController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ extension Encode_SpecialData_dateViewController {
4242
let tf = DateFormatter()
4343
tf.dateFormat = "yyyy-MM-dd"
4444
return [
45-
CodingKeys.a <--- SmartDateFormatTransformer(tf),
46-
CodingKeys.b <--- SmartDateFormatTransformer(tf)
45+
CodingKeys.a <--- SmartDateTransformer(strategy: .formatted(tf)),
46+
CodingKeys.b <--- SmartDateTransformer(strategy: .formatted(tf))
4747
]
4848
}
4949
}

Example/SmartCodable/测试用例/编码/TestEncodeCaseViewController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@ extension TestEncodeCaseViewController {
5959
"list": [
6060
["name": "Date", "vc": "Encode_SpecialData_dateViewController"],
6161
["name": "Data", "vc": "Encode_SpecialData_dataViewController"],
62+
["name": "Color", "vc": "Encode_SpecialData_colorViewController"],
6263
["name": "URL", "vc": "Encode_SpecialData_urlViewController"],
6364
["name": "Enum", "vc": "Encode_SpecialData_enumViewController"],
64-
["name": "SmartColor", "vc": "Encode_SpecialData_colorViewController"],
6565
["name": "SmartAny", "vc": "Encode_SpecialData_anyViewController"],
66-
["name": "嵌套模型", "vc": "Encode_SpecialData_modelViewController"],
66+
["name": "嵌套模型", "vc": "Encode_SpecialData_modelViewController"],
6767
]
6868
]
6969
}

Example/SmartCodable/测试用例/解码/TestCaseViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,10 @@ extension TestCaseViewController {
9696
"list": [
9797
["name": "特殊格式 - Date", "vc": "SpecialData_dateViewController"],
9898
["name": "特殊格式 - Data", "vc": "SpecialData_dataViewController"],
99+
["name": "特殊格式 - Color", "vc": "SpecialData_ColorViewController"],
99100
["name": "特殊格式 - Float", "vc": "SpecialData_FloatViewController"],
100101
["name": "特殊格式 - URL", "vc": "SpecialData_URLViewController"],
101102
["name": "特殊格式 - Enum", "vc": "SpecialData_EnumViewController"],
102-
["name": "特殊格式 - SmartColor", "vc": "SpecialData_ColorViewController"],
103103
["name": "特殊格式 - SmartAny", "vc": "SpecialData_SmartAnyViewController"],
104104

105105
]

0 commit comments

Comments
 (0)