[英]Setting up home using Home kit framework in iOS8
我想創建HMHome
與HMHomeManager
和addHomeWithName
。
HMHomeManager * myHomeManager;
[myHomeManager addHomeWithName:@"My Home" completionHandler:^(HMHome *home, NSError *error)
{
if (!error) {
NSLog(@"Created Home : %@",home.name);
} else {
NSLog(@"Error : %@",[error localizedDescription]);
}
}];
運行應用程序時,出現以下錯誤,而不是創建Home
Error : The operation couldn’t be completed. (HMErrorDomain error -70892.).
使您的類成為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
您可以通過任意功能添加房屋(例如,當用戶點擊“ +”按鈕以將新房屋插入到表格視圖列表中時)
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”:
附加示例圖片
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.