HMHomeManager didAddHome不退换(HMHomeManager didAddHo

2019-10-21 06:57发布

我有与HMHomeManager增加家庭的问题。 我可以调用函数add好,但HMHomeManager不返回

func homeManager(manager: HMHomeManager!, didAddHome home: HMHome!) {
    println("\(__FUNCTION__)")
}

我相信我已经分配homeManager的代表。 下面是我的代码:

class ViewController: UIViewController, HMHomeManagerDelegate {
var manager: HMHomeManager

required init(coder aDecoder: NSCoder) {
    manager = HMHomeManager()
    super.init(coder: aDecoder)
}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    manager.delegate = self
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

// MARK: - Actions

@IBAction func home1Pressed(sender: UIButton) {
    manager.addHomeWithName("Home12", completionHandler: {
        (home:HMHome!, error:NSError!) -> Void in
        if error != nil {
            println("error: \(error)")
        }
        else {
            println("no error")
        }
    })
}

@IBAction func home2Pressed(sender: UIButton) {
    manager.addHomeWithName("Home23", completionHandler: {
        (home:HMHome!, error:NSError!) -> Void in
        if error != nil {
            println("error: \(error)")
        }
        else {
            println("no error")
        }
    })
}

// MARK: - HMHomeManagerDelegate

func homeManagerDidUpdateHomes(manager: HMHomeManager!) {
    println("\(__FUNCTION__)")
}

func homeManagerDidUpdatePrimaryHome(manager: HMHomeManager!) {
    println("\(__FUNCTION__)")
}

func homeManager(manager: HMHomeManager!, didAddHome home: HMHome!) {
    println("\(__FUNCTION__)")
}

func homeManager(manager: HMHomeManager!, didRemoveHome home: HMHome!) {
    println("\(__FUNCTION__)")
}

}

需要注意的是:当我第一次运行此代码, homeManagerDidUpdateHomes叫这证明,我认为homeManager.delegate =自我是正确的

在这段代码,之后我按下按钮1( home1Pressed触发)和BUTTON2( home1Pressed触发), home12home23创建。 我知道这是因为我下次运行此代码,输出为:

homeManagerDidUpdateHomes
homes: [[ name = Home1, primary : Yes ], [ name = Home12, primary : No ], [ name = Home23, primary : No ]]

但为什么homeManager(manager: HMHomeManager!, didAddHome home: HMHome! ?当我按下按钮1和按钮2不叫我无法弄清楚,2天。

谢谢,

Answer 1:

你记得启用功能HomeKit?



Answer 2:

从苹果开发论坛的讨论引用:

这是不是一个错误,但是,是的,它应该得到更好的记录。

当有HomeKit数据库不是由应用程序引起的,或者没有你完成处理设备(就像从iCloud的同步处理的直接连接改变所有HomeKit的代表只会被调用,另一个HomeKit应用程序增加了一个房间,然后用户切换到您的APP)



Answer 3:

我犯了同样的错误。 作为一种变通方法,我收到homeManagerDidUpdatePrimaryHome回调。 我申请了这个错误的测试版,这是封闭的重复过程中,但我想它需要被再次提出。 homeManagerDidUpdatePrimaryHome工作,但实际上只与第一家帮助。

我重新报这个苹果。



Answer 4:

这是在iOS蝽(8.3测试)。

21097472 HomeKit API - HMHomeManagerDelegate didAddHome不叫



文章来源: HMHomeManager didAddHome not returned