Skip to content

Releases: iAmMccc/SmartCodable

V6.0.1

22 Jan 11:52

Choose a tag to compare

🚀 v6.0.1(Release Notes)
✅ 主要更新
🟢 新增:SmartCompact 命名空间(Array / Dictionary 宽容解析)
新增 SmartCompact 命名空间,用于组织数组/字典的容错解析 Property Wrapper:
@SmartCompact.Array:对数组进行宽容解析,解析失败的元素会被自动跳过。
@SmartCompact.Dictionary:对字典进行宽容解析,解析失败的键值对会被自动跳过。
示例:

struct Model: Decodable {
    @SmartCompact.Array
    var ages: [Int]

    @SmartCompact.Dictionary
    var info: [String: Any]
}

🟡 优化:SmartCompact 设计与使用体验
统一命名空间,API 更清晰
避免 SmartCompact 误用为“万能 wrapper”
使数组/字典的宽容解析逻辑更加可控、可维护

V6.0.0

18 Dec 06:23

Choose a tag to compare

协议名SmartCodable调整为SmartCodableX

struct User: SmartCodableX {
    var name: String = ""
}

解决打包xcframework,命名空间冲突问题 #121 .

V5.0.2

08 May 11:56

Choose a tag to compare

V5.0.2更新说明

【新增】支持继承!

【新增】支持继承!

【新增】支持继承!

class BaseModel: SmartCodable {
    var name: String = ""
    
    required init() { }
}

@SmartSubclass
class SubModel: BaseModel {
    var age: Int = 0
}

V4.4.0

06 May 09:03

Choose a tag to compare

V4.4.0更新说明

【新增】提供属性包装器 @SmartHexColor,用来修饰UIColor.

【新增】提供属性包装器 @SmartDate,用来修饰Date类型。

【优化】优化CGFloat的实现代码。

【优化】提升解析性能。

【修复】某些场景下未使用初始化值的情况。

【修复】修复[Any] 类型 encode 时,transformer.toJSON不调用问题。

【删除】删除SmartColor类型,减少自创的类型。

优化@SmartFlat的encode实现

28 Mar 09:00

Choose a tag to compare

V4.3.0: 日志系统大升级

25 Nov 08:49

Choose a tag to compare

  1. 优化日志性能,减少遍历。
  2. 优化属性日志的信息表达。
  3. 支持日志的导出,如有需求可以上传服务器。
  4. 优化日志格式:unkeyedContainer的解析格式化;格式的优化。
================================  [Smart Sentinel]  ================================
Array<SomeModel> 👈🏻 👀
   ╆━ Index 0
      ┆┄ a: Expected to decode 'Int' but found ‘String’ instead.
      ┆┄ b: Expected to decode 'Int' but found ’Array‘ instead.
      ┆┄ c: No value associated with key.
      ╆━ sub: SubModel
         ┆┄ sub_a: No value associated with key.
         ┆┄ sub_b: No value associated with key.
         ┆┄ sub_c: No value associated with key.
      ╆━ sub2s: [SubTwoModel]
         ╆━ Index 0
            ┆┄ sub2_a: No value associated with key.
            ┆┄ sub2_b: No value associated with key.
            ┆┄ sub2_c: No value associated with key.
         ╆━ Index 1
            ┆┄ sub2_a: Expected to decode 'Int' but found ’Array‘ instead.
   ╆━ Index 1
      ┆┄ a: No value associated with key.
      ┆┄ b: Expected to decode 'Int' but found ‘String’ instead.
      ┆┄ c: Expected to decode 'Int' but found ’Array‘ instead.
      ╆━ sub: SubModel
         ┆┄ sub_a: Expected to decode 'Int' but found ‘String’ instead.
      ╆━ sub2s: [SubTwoModel]
         ╆━ Index 0
            ┆┄ sub2_a: Expected to decode 'Int' but found ‘String’ instead.
         ╆━ Index 1
            ┆┄ sub2_a: Expected to decode 'Int' but found 'null' instead.
====================================================================================

V4.2.6更新说明

31 Oct 02:00

Choose a tag to compare

【优化】优化继承关系下的父类属性的解析。
【新增】SmartAny支持修饰Model类型。

优化KeyMap映射关系

18 Oct 11:01

Choose a tag to compare

4.2.5

优化key的自定义映射规则

V4.2.3-BugFix 发布公告

12 Oct 11:19

Choose a tag to compare

【BugFix】修改非基本数据类型的自定义解析的失效问题。
【BugFix】修复key的映射关系中,当前值为null的判断错误问题。
【新功能】提供FastTransformer快捷ValueTransformer

CodingKeys.name <--- FastTransformer<String, String>(fromJSON: { json in
    "abc"
},toJSON: { object in
    "123"
})

V4.1.12 发布公告

27 Sep 08:53

Choose a tag to compare

  1. 【新功能】支持Combine,允许 @ Published修饰的属性解析。
  2. 【新功能】支持@igonreKey修饰的属性在encode时,不出现在json中(屏蔽这个属性key)
  3. 【新功能】支持encode时候的options,同decode的options使用。
  4. 【优化】Data类型在decode和encode时,只能使用base64解析.