我想知道Apple是否打算使用TouchID功能来调用这些生命周期方法.
是否有可能检查touchID进程是否正在调用这些方法(我想避免像应用程序委托中的BOOL那样,如果当前显示了touchID输入,则设置该对象.)
BR
解决方法
猜测您遇到的问题是您在applicationWillResignActive和applicationDidBecomeActive中有代码,这些代码会影响视图控制器,该控制器请求触摸ID验证,并确定它是一个棘手的循环.
您需要做的是将这些调用移到applicationDidEnterBackground和applicationWillEnterForeground,因为调用Touch ID机制时不会调用它们.
要解释序列,当您的应用程序启动时执行以下序列:
> applicationDidBecomeActive
>你的应用程序的其他东西
>您的应用程序会调用触摸ID,触发ID:
> applicationWillResignActive
… Your app is disabled until the user verifies fingerprint (fails or
succeeds) …
> applicationDidBecomeActive
如果您在applicationDidBecomeActive -or- applicationWillResignActive中存在影响Touch ID的代码,那么您将创建一个无休止的循环,或者更糟糕的是,您将创建一个充满标志和特殊情况的代码.
而应该在两种情况下调用Touch ID:
>当您的应用程序启动时(通常在didFinishLaunchingWithOptions中)>当您的应用程序的applicationWillEnterForeground被调用时.