9

我正在创建一个新的 CBMutableCharacteristic 用于我正在制作的蓝牙应用程序。我从教程中获得了一些代码,如下所示:

_customCharacteristic = [[CBMutableCharacteristic alloc] initWithType:characteristicUUID properties:CBCharacteristicPropertyNotify value:nil permissions:CBAttributePermissionsReadable];

_customCharacteristic我的 CBMutableCharacteristic在哪里。

但是,我想_customCharacteristic用其他属性初始化 my ,例如CBCharacteristicPropertyReadCBCharacteristicPropertyWrite。权限也是如此:我也想给它CBAttributePermissionsWriteable

据此:http: //developer.apple.com/library/ios/#documentation/CoreBluetooth/Reference/CBCharacteristic_Class/translated_content/CBCharacteristic.html#//apple_ref/doc/c_ref/CBCharacteristicProperties

这:http: //developer.apple.com/library/ios/#documentation/CoreBluetooth/Reference/CBMutableCharacteristic_Class/Reference/CBMutableCharacteristic.html#//apple_ref/doc/c_ref/CBAttributePermissions

我可以为每个特征同时拥有多个属性和权限。但是,我不知道如何以这种方式初始化我的 CBMutableCharacteristic。

4

3 回答 3

17

它是一个枚举,其不同的值可以按位或运算,因此您可以一起使用特征属性和权限:

CBMutableCharacteristic *_customCharacteristic = [[CBMutableCharacteristic alloc] initWithType:characteristicUUID properties:CBCharacteristicPropertyNotify+CBCharacteristicPropertyRead
 value:nil permissions:CBAttributePermissionsReadable|CBAttributePermissionsWriteable];
于 2013-08-07T22:29:15.057 回答
4

tdevoy 的答案是正确的,或者以下也是我的工作代码

characteristic = [[CBMutableCharacteristic alloc] initWithType:characteristicUUID      properties:CBCharacteristicPropertyWriteWithoutResponse|CBCharacteristicPropertyRead  value:nil permissions:CBAttributePermissionsReadable|CBAttributePermissionsWriteable];
于 2013-08-08T04:33:06.423 回答
0

当前的答案在当时是有效的,但已经过去八年了,现在 AppleOptionSet使用属性权限

以下是用于初始化 a 的现代、基于 Swift 的方法CBMutableCharacteristic,并包含一个简短的示例片段,您可以在 Playground 中运行以进行验证。

import CoreBluetooth

let cbuuid = CBUUID()
let characteristic = CBMutableCharacteristic(type: cbuuid,
                                             properties: [.notify, .read],
                                             value: nil,
                                             permissions: [.readable, .writeable])
// All print true
print(characteristic.properties.contains(.read))
print(characteristic.properties.contains(.notify))
print(characteristic.permissions.contains(.readable))
print(characteristic.permissions.contains(.writeable))
于 2021-11-02T12:19:24.923 回答