如何将 bool 转换为 NSData

Roy*_*son 1 nsdata ios nskeyedunarchiver swift

我发现这篇文章将 a 转换IntNSData

它说要这样做:

var foo: Int = 1000
let data = NSData(bytes: &foo, length: sizeof(Int))
Run Code Online (Sandbox Code Playgroud)

Bool我想知道,我是否应该对将 a 转换为同样的想法NSData,如下所示:

 var purchase: Bool = true
 let data = NSData(bytes: &purchase, length: sizeof(Bool))
Run Code Online (Sandbox Code Playgroud)

就我而言,我总是知道那Bool将是真实的。既然是这种情况,我想知道是否有一种更简单的方法将值“true”转换为对象NSData

一些背景上下文:

我将此值存储在这个库的NSData钥匙串中。

我还将把该NSData值转换回布尔值NSKeyedUnarchiver.unarchiveObjectWithData

Kaz*_*mun 5

斯威夫特 >= 4 解决方案

JSONEncoder我们可以使用原因Bool struct确认轻松实现这一点Codable Typealias

let mBoolValue = true
let boolData = try! JSONEncoder().encode(mBoolValue)
Run Code Online (Sandbox Code Playgroud)