HMHomeManager返回零
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HMHomeManager返回零相关的知识,希望对你有一定的参考价值。
我正在创建基于HomeKit的自己的“HouseKit”。这个api允许我像light.on()那样非常快地执行homekit动作。
按照我的解释,然后在这里介绍我的问题是我的灯管理公共课的一个例子。这很好用。
public class AIALight: AIAEquipment {
// MARK: - Initialization
public init(kind: Kind, name: String) {
super.init(.light, equipmentName: name)
}
}
extension AIALight: AIAControllable {
public enum Order: AIAOrder {
// MARK: - Values
case on
case off
var info: (Int) {
switch self {
case .on:
return 1
case .off:
return 0
}
}
}
}
然后创造一个光......
var myLight = AIALight(kind: .light, name: "Sdb1")
......并在需要时发送订单:
self.myLight.set(.on, completion: nil)
好了,现在保持相同的想法,我希望能够创建房屋和房间。对于家庭HMHomeManagerDelegate,当然还有HMHomeManager。
这是我创建一个Home的完全自己的类:
import Foundation
import HomeKit
public final class AIAHouse: HMHome, HMHomeManagerDelegate {
public var house: HMHome!
public let houseName: String
public var manager: HMHomeManager? {
didSet {
self.manager?.delegate = self
}
}
// MARK: - Initialization
public init(houseName: String) {
self.manager = nil
self.houseName = houseName
}
public func homeManagerDidUpdateHomes(_ manager: HMHomeManager) {
//We browse HMHome to find CruzHouse already set via Home App on ios
for home in manager.homes as [HMHome]{
if home.name == self.houseName{
print("Found the expected home: (self.houseName) 答案
从Apple文档:
你不直接创建家园 - 而是用addHome(withName:completionHandler:)
的HMHomeManager
方法创建它们。
如果你的AIAHouse
对象继承自NSObject
而不是HMHome
,你的代码将被编译。
以上是关于HMHomeManager返回零的主要内容,如果未能解决你的问题,请参考以下文章