【发布时间】:2016-07-21 16:45:18
【问题描述】:
我发现this post 可以将Int 转换为NSData
它说要这样做:
var foo: Int = 1000
let data = NSData(bytes: &foo, length: sizeof(Int))
我想知道,将Bool 转换为NSData 时我是否应该这样做,如下所示:
var purchase: Bool = true
let data = NSData(bytes: &purchase, length: sizeof(Bool))
就我而言,我一直都知道Bool 是真的。既然是这种情况,我想知道是否有更简单的方法可以将值“true”转换为 NSData 对象。
一些背景背景:
我将这个NSData 值存储在带有this library 的钥匙串中。
我还将使用NSKeyedUnarchiver.unarchiveObjectWithData 将NSData 值转换回布尔值
【问题讨论】:
-
尝试将bool转换为int,然后再转换为NSData
-
我会将 Bool 转换为字节,而不是 int。然后只需执行
NSData setBytes。由于 Bool 是有符号字符,而字符是字节,所以没有转换...只需将其转换为字节即可。 -
NSNumber(booleanLiteral: purchase)可以将 boo 转换为数字。
标签: ios swift nsdata nskeyedunarchiver