从HMService和/或HMAccessory对象实例中检索公司名称

时间:2015-04-24 09:35:24

标签: accessory ios8.3 homekit

我正在使用 Home Kit附件模拟器,我想从 HMService 的实例中检索附件的公司名称。但是,当我添加断点时,我看不到任何与公司名称相关的字段(我在HMService和 HMAccessory 中搜索过)。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您可以从 HMServiceTypeAccessoryInformation服务获取制造商的名称,Service中包含特征数组,其中有 HMCharacteristicTypeManufacturer 特征。

您可以使用它来显示公司名称。

- (HMCharacteristic *)characteristicForAccessory:(HMAccessory *)accessoryValue{

HMAccessory *thisAccessory = accessoryValue;
HMService *service;
for (HMService *thisService in thisAccessory.services) {
    if([thisService.serviceType isEqualToString:HMServiceTypeAccessoryInformation])    {
        service = thisService;
    }
}
HMCharacteristic *characteristic;
if (service)   {
    for (HMCharacteristic *charact in service.characteristics) {
        if ([charact.characteristicType isEqualToString:HMCharacteristicTypeManufacturer]) {
            characteristic = charact;
        }
    }
}

return characteristic;

}

使用特征对象的value属性获取制造商的名称。

喜欢characteristic.value

答案 1 :(得分:0)

看看Raeid Saqur的RSHomeKit框架:

您可以通过致电service.accessory获取配件。然后使用:

+ (NSString *)getManufacturerNameForHMAccessory:(HMAccessory *)accessory;

+ (NSString *)getManufacturerNameForHMAccessory:(HMAccessory *)accessory {
    if (!accessory) {
        return nil;
    }
    HMCharacteristic *manufacturer = [HomeKitUtility getCharacteristicWithUUID:HMCharacteristicTypeManufacturer forAccessory:accessory];

if (manufacturer && manufacturer.value) {
    return (NSString *)manufacturer.value;
}
    return nil;
}