初始化CBC特性时是否可以设置初始值?

时间:2017-06-08 16:54:42

标签: ios swift core-bluetooth

不可否认,我对Apple Docs的措辞很难,所以我可能会遗漏一些东西。但是,似乎并非如此。

这是问题所在。

假设:

let charSomeUUID = CBUUID(string: "12345678-1234-12234-1234-123456789qwe")
someCharacteristic    = CBMutableCharacteristic(type: charSomeUUID, properties: [CBCharacteristicProperties.read, CBCharacteristicProperties.notify], value: nil, permissions: CBAttributePermissions.readable)

如何为值字段提供初始值?

我在didReceiveRead看到了如何做到这一点。但是我想设置一个初始值。

我已经尝试将字符串放入数据对象并将其放入值位置,但这似乎不起作用。苹果文档中的(目标C)示例的快速3等效似乎不起作用(不再?)。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

道歉。

我实际上有另一段错误的代码,最终成为真正的问题。

对于未来的敬畏,这里的代码是为了表明我最初认为不起作用的事实上是有效的。

let stringValue : String = "something"
    let dataValue = stringValue.data(using: String.Encoding.utf8)

    // Device Info
    someCharacteristic    = CBMutableCharacteristic(type: someUUID, properties: CBCharacteristicProperties.read, value: dataValue, permissions: CBAttributePermissions.readable)

注意:通过此方法添加值时,您的特性需要只读。还有一些事要在那里阅读。

未使用只读会导致以下错误:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Characteristics with cached values must be read-only'
苏丹,谢谢你的关注。抱歉混淆了。