gpt4 book ai didi

iOS 完整数据保护 + 应用程序 :performFetchWithCompletionHandler

转载 作者:行者123 更新时间:2023-12-03 18:36:18 34 4
gpt4 key购买 nike

我有一个 iPad 应用程序,它使用完整数据保护来加密应用程序的内容,除非设备已解锁并运行。这是客户要求的,并且按预期工作。

第二个业务需求是我们在后台运行一些 Web 服务调用。这是使用新的 application:performFetchWithCompletionHandler 完成的。在 iOS 7 中可用。我需要从本地 SQLite 数据库中提取一些数字来与 Web 服务的结果进行比较,以便了解是否需要启动后台下载。这是失败的。

有没有办法配置数据保护,以便我的应用程序可以在后台读取 SQLite 数据库?

可以逐个文件设置权限吗?

如果做不到这一点,任何人都可以提出解决方法吗? NSUserDefaults? plist 文件?还有什么?

谢谢。

最佳答案

NSFileProtectionComplete 时,您无法从 sqlite 数据库中读取数据。已启用且设备已锁定。然而,Apple 在 2013 年 WWDC 视频“What's New with Multitasking”@https://developer.apple.com/videos/wwdc/2013/ 中描述了如何处理这种情况。在 44:00 左右。

因为你的 SQLite 文件设置为 NSFileProtectionComplete ,您无法在设备锁定时对其进行写入或读取。您应该做的是将任何新数据(在设备锁定时在后台下载)写入磁盘上的单独文件,级别为 NSFileProtectionCompleteUnlessOpen。 .这将允许您将数据写入磁盘,并且在您关闭文件时数据将受到保护。当 protected 数据可用(设备已解锁)时,您应该将数据合并到您的数据库中。

您可能想尝试在磁盘上创建一个文件,其中包含确定何时发出新数据请求所需的信息。如果将此文件设置为级别 NSFileProtectionCompleteUntilFirstUserAuthentication当设备被锁定时,您应该仍然可以阅读它。

关于iOS 完整数据保护 + 应用程序 :performFetchWithCompletionHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22481894/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com