CBPeripheral is much more KVO compliant than I expected. I figured you had to implement the delegate to learn about its changes, but, not so much.

But…it does yell at you about API misuse if you don’t implement the delegate (which is proably smart, because you need the error).