为什么 isProtectedDataAvailable 在 applicationProtectedDataWillBecomeUnavailable 中不是真的?

Why isProtectedDataAvailable is not true inside applicationProtectedDataWillBecomeUnavailable?

甚至在 AppDelegate.m 中的 applicationProtectedDataWillBecomeUnavailable 委托中也使 isProtectedDataAvailable 为真(有时)。根据文档 applicationProtectedDataWillBecomeUnavailable 当受保护数据不可用时调用 为什么我得到它 true?

- (void) applicationProtectedDataWillBecomeUnavailable:(UIApplication *)application {
    DDLogVerbose(TAG, "%d", [[UIApplication sharedApplication] isProtectedDataAvailable]);
}

isProtectedDataAvailable - 如果启用数据保护且设备当前已锁定,则此 属性 的值为 false。如果设备已解锁或未启用内容保护,则此 属性 的值设置为 true。当此 属性 的值为 false 时,您的应用无法读取或写入分配了 complete 或 completeUnlessOpen 保护密钥的文件。用户必须先解锁设备,您的应用才能访问它们。

As per documentation applicationProtectedDataWillBecomeUnavailable is called when protected data is unavailable

不完全是。来自 docs for applicationProtectedDataWillBecomeUnavailable::

Tells the delegate that the protected files are about to become unavailable.

此方法是在 受保护文件变得不可用之前不久发布的,这意味着它们在调用此方法期间仍然可用。