我正处于测试阶段3.考虑以下Objective-C行:
const uint8_t *reportData = [data bytes];
Run Code Online (Sandbox Code Playgroud)
在哪里data是一个NSData对象.
如何在Swift中重写这一行?
data.bytes是类型的ConstUnsafePointer<()>,虽然有很多关于如何在Swift中创建指针类型的文档,但是没有太多关于如何使用它们的信息.
编辑: 要添加一些上下文,我正在尝试将Apple的HeartRateMonitor示例代码移植到Swift.此代码与BLE心率监测器交互.我正在编写的这段代码将蓝牙系统收到的数据转换为int,以便在UI中使用.从BT接收的数据预计是一个uint数组,元素0用于检查标志,元素1包含该值.
这是上下文中相同的Objective-C行:
const uint8_t *reportData = [data bytes];
uint16_t bpm = 0;
if ((reportData[0] & 0x01) == 0)
{
/* uint8 bpm */
bpm = reportData[1];
}
Run Code Online (Sandbox Code Playgroud)
你在寻找的是如何将NSData转换为UInt8数组.这是如何做.
import Foundation
let path = "/etc/csh.cshrc" // something existent
let data = NSData(contentsOfFile: path)
var aofb = [UInt8](count:data.length, repeatedValue:0)
data.getBytes(&aofb, length:data.length)
for c in aofb {
let s = UnicodeScalar(Int(c)).escape(asASCII:true)
println("\(c):\(s)")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2048 次 |
| 最近记录: |