What is the utility of the readXWithCompletion: methods on ESTBeacon compared to the analogous ESTBeacon properties? I've done some small experiments and it looks like the properties are populated for a connected beacon.
I guess my question boils down to, when should I use the properties versus the readXWithCompletion: methods?
You are right. ESTBeacon class properties are filled with correct values just after connection so when you receive beaconConnectionDidSucceed you have everything in place. readXWithCompletion: methods are left to give an option to read values directly from the beacon device. As preperties are updated after connection and every single writeXWithCompletion: method invocation you can treat readXWithCompletion methods as just a utility addition.
You can use readXWithCompletion: methods and ESTBeacon properties alternatively, you just need to be connected to the Beacon.
So, I don't see a way to reply to a particular answer. I guess I'll just post as another answer.
My question is what is the point of the two mechanisms for reading these properties? Are the properties blocking? Is that why the completion handler versions exist? There must be some functional difference.
Sorry for late answer. Preffered way of reading those values is use of ESTbeacon class properties.
We are going to remove readXWithCompletion: methods for properiets like UUID, major, minor as they just causing confusion.