Как инициализировать CBMutableCharacteristic с несколькими CBCharacteristicProperties и разрешениями

Я создаю новый CBMutableCharacteristic для использования в приложении Bluetooth, которое я создаю. Я получил код из учебника, который выглядит так:

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

где _customCharacteristic — моя CBMutableCharacteristic.

Однако я хочу инициализировать свой _customCharacteristic другими свойствами, такими как CBCharacteristicPropertyRead и CBCharacteristicPropertyWrite. То же самое относится и к разрешениям: я также хочу дать ему 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 таким образом.


person Graham Carling    schedule 07.08.2013    source источник


Ответы (2)


Это перечисление, различные значения которого могут быть объединены побитовым ИЛИ, поэтому вы можете использовать характерные свойства и разрешения вместе:

CBMutableCharacteristic *_customCharacteristic = [[CBMutableCharacteristic alloc] initWithType:characteristicUUID properties:CBCharacteristicPropertyNotify+CBCharacteristicPropertyRead
 value:nil permissions:CBAttributePermissionsReadable|CBAttributePermissionsWriteable];
person Tommy Devoy    schedule 07.08.2013
comment
Важно отметить, что это работает только потому, что значения являются двунаправленными и каждое значение добавляется только один раз. Использование побитовой или | операции является более безопасным и общепринятым решением. - person allprog; 09.08.2013

tdevoy ответ правильный, или следующий код также работает для меня

characteristic = [[CBMutableCharacteristic alloc] initWithType:characteristicUUID      properties:CBCharacteristicPropertyWriteWithoutResponse|CBCharacteristicPropertyRead  value:nil permissions:CBAttributePermissionsReadable|CBAttributePermissionsWriteable];
person V-Xtreme    schedule 08.08.2013