What's the format for the iOS Bluetooth LE kCBAdvDataServiceUUIDs?
In centralManager:didDiscoverPeripheral:advertisementData:RSSI (complete code below), I'm finding a key in the NSDictionary called kCBAdvDataServiceUUIDs. I'm trying to read this data to determine the services available on the device. What format is this data in? The class description is simply
 
    Unknown (<fff0>)
 
Here's the source:
 

    - (void) centralManager: (CBCentralManager *) central
      didDiscoverPeripheral: (CBPeripheral *) aPeripheral
          advertisementData: (NSDictionary *) advertisementData
                       RSSI: (NSNumber *) RSSI
    {
    printf("Discovered %s\n", [[aPeripheral name] cStringUsingEncoding: NSUTF8StringEncoding]); // TODO: Remove printfs
        printf("  RSSI: %s\n", [[RSSI stringValue] cStringUsingEncoding: NSUTF8StringEncoding]);
        NSArray *keys = [advertisementData allKeys];
        for (int i = 0; i < [keys count]; ++i) {
            id key = [keys objectAtIndex: i];
            NSString *keyName = (NSString *) key;
            NSObject *value = [advertisementData objectForKey: key];
            if ([value isKindOfClass: [NSArray class]]) {
                printf("   key: %s\n", [keyName cStringUsingEncoding: NSUTF8StringEncoding]);
                NSArray *values = (NSArray *) value;
                for (int j = 0; j < [values count]; ++j) {
                    NSObject *aValue = [values objectAtIndex: j];
                    printf("       %s\n", [[aValue description] cStringUsingEncoding: NSUTF8StringEncoding]);
                    printf("       is NSData: %d\n", [aValue isKindOfClass: [NSData class]]);
                }
            } else {
                const char *valueString = [[value description] cStringUsingEncoding: NSUTF8StringEncoding];
                printf("   key: %s, value: %s\n", [keyName cStringUsingEncoding: NSUTF8StringEncoding], valueString);
            }
        }
    }

Here's the output from the keyfob in a TI CC2250 Mini Development Kit:

    Discovered (null)
      RSSI: -36
       key: kCBAdvDataServiceUUIDs
           Unknown (<fff0>)
           is NSData: 0
    Discovered SimpleBLEPeripheral
      RSSI: -37
       key: kCBAdvDataServiceUUIDs
           Unknown (<fff0>)
           is NSData: 0
       key: kCBAdvDataLocalName, value: SimpleBLEPeripheral
       key: kCBAdvDataTxPowerLevel, value: 0
What's the format for the iOS Bluetooth LE kCBAdvDataServiceUUIDs?
===

In centralManager:didDiscoverPeripheral:advertisementData:RSSI (complete code below), I'm finding a key in the NSDictionary called kCBAdvDataServiceUUIDs. I'm trying to read this data to determine the services available on the device. What format is this data in? The class description is simply
 
    Unknown (<fff0>)
 
Here's the source:
 

    - (void) centralManager: (CBCentralManager *) central
      didDiscoverPeripheral: (CBPeripheral *) aPeripheral
          advertisementData: (NSDictionary *) advertisementData
                       RSSI: (NSNumber *) RSSI
    {
    printf("Discovered %s\n", [[aPeripheral name] cStringUsingEncoding: NSUTF8StringEncoding]); // TODO: Remove printfs
        printf("  RSSI: %s\n", [[RSSI stringValue] cStringUsingEncoding: NSUTF8StringEncoding]);
        NSArray *keys = [advertisementData allKeys];
        for (int i = 0; i < [keys count]; ++i) {
            id key = [keys objectAtIndex: i];
            NSString *keyName = (NSString *) key;
            NSObject *value = [advertisementData objectForKey: key];
            if ([value isKindOfClass: [NSArray class]]) {
                printf("   key: %s\n", [keyName cStringUsingEncoding: NSUTF8StringEncoding]);
                NSArray *values = (NSArray *) value;
                for (int j = 0; j < [values count]; ++j) {
                    NSObject *aValue = [values objectAtIndex: j];
                    printf("       %s\n", [[aValue description] cStringUsingEncoding: NSUTF8StringEncoding]);
                    printf("       is NSData: %d\n", [aValue isKindOfClass: [NSData class]]);
                }
            } else {
                const char *valueString = [[value description] cStringUsingEncoding: NSUTF8StringEncoding];
                printf("   key: %s, value: %s\n", [keyName cStringUsingEncoding: NSUTF8StringEncoding], valueString);
            }
        }
    }

Here's the output from the keyfob in a TI CC2250 Mini Development Kit:

    Discovered (null)
      RSSI: -36
       key: kCBAdvDataServiceUUIDs
           Unknown (<fff0>)
           is NSData: 0
    Discovered SimpleBLEPeripheral
      RSSI: -37
       key: kCBAdvDataServiceUUIDs
           Unknown (<fff0>)
           is NSData: 0
       key: kCBAdvDataLocalName, value: SimpleBLEPeripheral
       key: kCBAdvDataTxPowerLevel, value: 0