OGeek|极客世界-中国程序员成长平台

标题: ios - 在 iOS 8 中使用 HomeKit 将配件添加到 Home [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 23:50
标题: ios - 在 iOS 8 中使用 HomeKit 将配件添加到 Home

我能够创建家并添加房间,但是当尝试将配件添加到家时,

- (IBAction)addAccessoryid)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]);
        }
    }];

}

会显示一条警报,其中包含消息“输入灯泡的设置代码”,其中包含一个文本字段和两个按钮,但该文本字段不允许输入设置代码。单击“设置”按钮时,警报将在不执行任何操作的情况下关闭,并且选择“取消”时,将出现错误 block 显示错误“无法完成操作。(HMErrorDomain错误-70890。)”。

委托(delegate)方法“didFindNewAccessory”将附件服务打印为空。

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

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



Best Answer-推荐答案


您从哪里调用 addAccessoryid)sender 方法?
您可以在 didFindNewAccessory: 方法中添加已发现的设备,因为它会为每个已发现的设备调用。

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

另一种可能是您没有在 HomeKit Accessory Simulator 中设置任何服务。这可以解释为什么您获得设备描述但没有获得任何服务。

您能否添加更多代码来显示您在哪里创建 myAccessory 并调用您的方法?

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

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






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4