iOS アプリケーションで、携帯電話からアプリを削除して再構築すると、アプリを起動すると、設定した HMHomeManager 変数にアクセスしようとしてアプリがクラッシュし、HomeKit アクセスの許可を求められます。
クラッシュする前にアプリに HomeKit の許可を求めるようにするためにできることはありますか?
appDelegate
これをファイルに入れてみました。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
//push notifications
registerPushNotifications()
let home = HMHomeManager()
home.accessibilityActivate()
return true
}
しかし、それは機能していません。助けてくれてありがとう!
編集:
これはクラッシュするコードで、最初のビュー コントローラーが読み込まれたときに呼び出されます。
//adding the accessories
func addAcessories() {
for accessory in (homeManager.primaryHome?.accessories)! { // <-- crashes right here
if accessory.isBridged == true {
devices.append(accessory)
print(accessory.name)
}
}
print("")
}
編集: クラッシュすると(lldb)
、コンソールとThread 1: EXC_BREAKPOINT
テキスト エディターに表示されます。
appDelegate
また、これをファイルに入れてみました。appDelegate を準拠させてみましたHMHomeManagerDelegate
class AppDelegate: UIResponder, UIApplicationDelegate, HMHomeDelegate, HMHomeManagerDelegate {
ApplicationDidFinishLoadingWithOptions
これを私のメソッドで呼び出します。
let home = HMHomeManager()
home.accessibilityActivate()
home.delegate = self
homeKit.addAcessories()
homeKit.addCharacteristics()
return true