2013-08-07 8 views
8

Sto creando un nuovo CBMutableCharacteristic da utilizzare in un'applicazione Bluetooth che sto creando. Ho avuto qualche codice da un tutorial, che assomiglia a questo:Come inizializzare un CBMutableCharacteristic con più caratteristiche e permessi dei caratteri CBC

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

dove _customCharacteristic è il mio CBMutableCharacteristic.

Tuttavia, desidero inizializzare il mio _customCharacteristic con altre proprietà, ad esempio CBCharacteristicPropertyRead e CBCharacteristicPropertyWrite. Lo stesso vale per le autorizzazioni: voglio dargli anche CBAttributePermissionsWriteable.

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

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

posso avere sia più proprietà e le autorizzazioni per ogni caratteristica. Tuttavia, non so come inizializzare il mio CBMutableCharacteristic in questo modo.

risposta

14

suo un enum, i cui valori diversi possono essere ORed bitwisely, in modo da poter utilizzare le proprietà caratteristiche e le autorizzazioni insieme:

CBMutableCharacteristic *_customCharacteristic = [[CBMutableCharacteristic alloc] initWithType:characteristicUUID properties:CBCharacteristicPropertyNotify+CBCharacteristicPropertyRead 
value:nil permissions:CBAttributePermissionsReadable|CBAttributePermissionsWriteable]; 
+0

È importante notare che questo funziona solo perché i valori sono esclusivi biwise e ogni valore viene aggiunto una sola volta. L'uso dell'operazione bitwise o "' | '" è più sicuro e la soluzione generalmente accettata. – allprog

4

tdevoy risposta è quella giusta, o in seguito è anche il codice lavorando per me

characteristic = [[CBMutableCharacteristic alloc] initWithType:characteristicUUID  properties:CBCharacteristicPropertyWriteWithoutResponse|CBCharacteristicPropertyRead value:nil permissions:CBAttributePermissionsReadable|CBAttributePermissionsWriteable];