在我的 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