Monaka 将自定义结构转换为 NSData。
编写激活代码。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
Monaka.activateStandardPackables(withCustomStructActivations: { /* Write here if you use your struct to pack. */ })
// Other codes...
return true
}
您可以打包/解包 Packable
变量。
// For example, simple Int variable.
// Pack
let value: Int = 10
let data: NSData = Monaka.pack(value)
// Unpack
let unpacked = Monaka.unpack(data) as? Int
CustomPackable
// Protocol `CustomPackable`
struct SampleStruct: CustomPackable {
let id: String
/* Implementations */
// Implement function ([String : Packable] -> Packable?) named 'restoreProcedure'
static var restoreProcedure: [String : Packable] -> Packable? = { (dictionary: [String : Packable]) -> Packable? in
guard let id = dictionary["id"] as? String else {
return nil
}
return SampleStruct1(id: id)
}
}
激活您自定义的结构体。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
Monaka.activateStandardPackables(withCustomStructActivations: {
SampleStruct.activatePack()
})
// Other codes...
return true
}
您可以将它们作为标准类型进行打包/解包。
// Pack
let value: SampleStruct = SampleStruct(id: NSUUID().UUIDString)
let data: NSData = Monaka.pack(value)
// Unpack
let unpacked = Monaka.unpack(data) as? SampleStruct
Monaka 在 MIT 许可证下发布。有关详细信息,请参阅 LICENSE。