簡體   English   中英

在iOS8中使用Home kit框架設置主頁

[英]Setting up home using Home kit framework in iOS8

我想創建HMHomeHMHomeManageraddHomeWithName

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”:

  1. 選擇您的應用目標
  2. 選擇“ 功能 ”標簽。
  3. 將“ HomeKit ”切換為“開”。
  4. 輸入您的開發者ID等。

附加示例圖片

添加HomeKit權利

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM