Swift 二进制库 1.1.2

Swift.Binary 1.1.2

测试已测试
语言语言 SwiftSwift
许可 MIT
发布上次发布2018年4月
SPM支持 SPM

Anderson Lucas C. Ramos 维护。



  • Anderson Lucas C. Ramos

Build Status

Swift.Binary

Swift 3.2 和 4 的二进制自动解析。

示例

使用 Encoder 和 Decoder 类,只需声明您的 Swift 类,其中所有属性都是 @objc dynamic,并且类必须扩展 NSObject。其他事情是,代表 Obj-c 的对象可能是可选的,但非 obj-c 代表的对象必须定义为非可选的。但 @objc dynamic 指示符将强制您正确地定义它。

示例

将对象转换为数据的实现示例。

import Swift_Binary // very important

class Employee: NSObject {
    @objc fileprivate(set) dynamic var name: String?
    @objc fileprivate(set) dynamic var age: Int = 0
}

class Boss: Employee {
    @objc fileprivate(set) dynamic var employees: [Employee]?
}

let employee1: Employee = Employee()
employee1.name = "John Apple Juice"
employee1.age = 35

let boss: Boss = Boss()
boss.name = "Steve James Apple Orange Juice"
boss.age = 65
boss.employees?.append(employee1)

let encoder = Encoder()
let binaryData: Data = try! encoder.encode(boss)

解析示例

将数据转换为对象的实现示例。注意:使用上面相同的类。

let binaryData: Data = // binary NSData

let decoder = Decoder()
let boss: Boss = try! decoder.decode(binaryData)

assert(boss.name == "Steve James Apple Orange Juice")
assert(boss.age == 65)
assert(boss.employees![0].name == "John Apple Juice")
assert(boss.employees![0].age == 35)

有任何疑问,请发表一个 issue 或创建一个 pull request。欢迎 pull requests。谢谢。