让您的班级成为 HMHomeManager 代表:
import UIKit
import HomeKit
class HomeManagerViewController: UITableViewController, HMHomeManagerDelegate {
var homeViewController: HomeViewController? = nil
var myHomeManager:HMHomeManager? = nil
var homes = [AnyObject]() // datasource for tableview
您的 HMHomeManager 必须首先初始化(您已经提到您已经这样做了),并且您的类设置为它的委托。
override func viewDidLoad() {
super.viewDidLoad()
myHomeManager = HMHomeManager()
myHomeManager!.delegate = self
您可以在任何您想要的功能中添加主页(即当用户点击“+”按钮将新主页插入 tableview 列表时)
HMHomeManager 必须有时间连接到 homekit 数据库
func insertNewObject(sender: AnyObject)
{
myHomeManager!.addHomeWithName( uniqueHomeName , completionHandler: { (home: HMHome!, error: NSError!) -> Void in
if (error != nil)
{
// adding the home failed; check error for why
NSLog("Error : %@",[error.localizedDescription])
}
else
{
// success!
// Insert home at bottom of datasource array and bottom of tableview cells
self.homes.append(home)
let indexPath = NSIndexPath(forRow: self.homes.count-1, inSection: 0)
self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
}
})
}
然后,您在 homeManagerDidUpdateHomes 委托方法中更新您的 tableviews 数据源。
当 HMHomeManager 完成初始化时调用此函数,并将为您提供任何先前添加的家庭的数组
// #pragma mark - HMHomeManager Delegate
func homeManagerDidUpdateHomes(manager: HMHomeManager!) {
self.homes = manager!.homes
self.tableView.reloadData()
}
当应用程序首次运行时,应该有一个访问其“附件数据”的请求。
确保为此点击“确定”。
另外:在您的应用程序权利下添加“HomeKit”:
- 选择您的应用目标。
- 选择“功能”选项卡。
- 将“ HomeKit ”切换为“开”。
- 输入您的开发者 ID 等。
附上示例图片