ios - 在 iOS 8 中使用 HomeKit 添加附件到主页

标签 ios homekit

我能够创建家并添加房间,但是在尝试向家添加配件时,

- (IBAction)addAccessory:(id)sender {
    [myHome addAccessory:myAccessory completionHandler:^(NSError *error) {
        if (!error) {
            NSLog(@"%@ accessory successfully added to %@ home",
                  myAccessory.name, myHome.name);
        } else {
            NSLog(@"addAccessory error = %@",[error localizedDescription]);
        }
    }];

}

显示带有文本字段和两个按钮的消息“为灯泡输入设置代码”的警报,但文本字段不允许输入设置代码。单击“设置”按钮时,警报将被关闭而不执行任何操作,并且when "cancel"is selected,It's going to error block showing the error "The operation couldn't be completed. (HMErrorDomain error -70890.)".

委托(delegate)方法“didFindNewAccessory”将 accessory.services 打印为空。

-(void)accessoryBrowser:(HMAccessoryBrowser*)browser didFindNewAccessory:
(HMAccessory*)accessory {
    NSLog(@"Accessory discovered is %@",accessory);
    NSLog(@"Accessory services is %@",accessory.services);
}

例子:
发现的附件是 [名称 = 锁,标识符 = D8946530-BCD9-4244-AB49-AF507105CC73] 配套服务是( )

最佳答案

您从哪里调用您的 addAccessory:(id)sender 方法?
您可以在 didFindNewAccessory 中执行此操作:添加已发现设备的方法,因为它会为每个已发现的设备调用。

我想变量 myAccessory 是一个属性?我没有看到你在方法中将它设置为实例变量或在方法中使用它或作为参数。如果您没有手动初始化它,它可能未初始化。

另一种可能是您没有在 HomeKit 配件模拟器中设置任何服务。这可以解释为什么您获得了设备的描述但没有获得任何服务。

您能否添加更多代码以显示您在何处创建 myAccessory 并调用您的方法?

编辑:
我在它工作的地方遇到了同样的问题,但后来不知何故停止了工作。我无法输入设置代码并用谷歌搜索了一下。解决方案是打开 iOS 模拟器并取消选中硬件 -> 键盘菜单中的“连接硬件键盘”选项。之后应该会出现一个数字键盘,您可以在其中输入代码。

关于ios - 在 iOS 8 中使用 HomeKit 添加附件到主页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24779153/

相关文章:

ios - 应用程序收到远程通知时显示 UIAlertView

ios - IOS 9.1/Xcode 7.1.1 中的蓝牙损坏

ios - (Swift) iOS 应用程序在请求 HomeKit 访问之前崩溃

ios - iPhone离家解决办法

ios NSFetchRequest,订购子对象

ios - IOS 已经有了 UIColor 为什么还要 CGColor?如果它们不同,那么它们之间有什么区别?

ios - Cordova 8 + iOS 4.5.4 = 找不到模块 "../cordova/platform_metadata"

ios - HMCalog iOS 示例应用程序

swift - HMHomeManager 返回零

ios - 需要查找 HomeKit 设备的 IP 地址