我在iOS Xcode项目中使用Swift。我想使用Apple Foundation和UIKit Frameworks中的Data或NSData对象来操作二进制数据,以便每个二进制数字表示一个布尔值 - 0表示false,1表示true。
我该怎么办?
我会将CloudKit中的Data对象保存为Bytes类型的字段。
如果我有一个更简单或更实用的方法来使用布尔值,这需要更少的内存并且效率更高,请向我建议。
我似乎记得有一种方法可以将数字格式化为二进制表达式。这将有助于我实现我的目标。
发布于 2019-06-27 17:36:01
您可以在一个字节中存储最多8个二进制(0或1,真或假,白色或黑色)值。例如,假设我们必须在一个字节中存储8个开关状态以及如何访问它们的值,您可以查看关于如何设置特定位开/关的 java问题:
let switches = [false, false, true, true, true, true, true, true]
var pos = 0
let byte: UInt8 = switches.reduce(into: 0) {
$0 = $1 ? $0 | (1 << pos) : $0 & ~(1 << pos)
pos += 1
}
print("byte value:", byte) // 252
let loadedSwitches = (0..<8).map { byte & (1 << $0) != 0 }
loadedSwitches // [false, false, true, true, true, true, true, true]
https://stackoverflow.com/questions/-100007068
复制相似问题