The *Bluetooth Core Spec V4.0 Vol. 3 Part G Section 4.9.3* states, that for writes of characteristic values with response, the Attribute Protocol *Write Request* procedure is used.

*Bluetooth Core Spec V4.0 Vol 3 Part F Section 3.3.2* describes, that

> 
> Once a client sends a request to a server, that client shall send no other request to the same server until a response PDU has been received.
> 
> 
> 

I want to write multiple values with response in an iOS app using CoreBluetooth. Do I have to manage this specification myself? Or can I simply use [`- writeValue:forCharacteristic:type`](http://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CBPeripheral_Class/translated_content/CBPeripheral.html#//apple_ref/occ/instm/CBPeripheral/writeValue:forCharacteristic:type:) to write all of the values at once, and iOS manages that each request is only sent after the preceding one has been processed?

I somehow guess that iOS will manage it, because according to *Bluetooth Core Spec V4.0 Vol 3 Part F Section 3.4.5.2* the *Write Response* does not contain a link to the written characteristic. However, the [`- peripheral:didWriteValueForCharacteristic:error`](http://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CBPeripheralDelegate_Protocol/translated_content/CBPeripheralDelegate.html#//apple_ref/occ/instm/CBPeripheralDelegate/peripheral:didWriteValueForCharacteristic:error:) method suggests that iOS somehow keeps track of what characteristic the response is linked to.

Can someone confirm or deny this?