【问题标题】:RealmSwift + Application Entered BackgroundRealmSwift + 应用程序进入后台
【发布时间】:2016-02-19 13:23:08
【问题描述】:

目前我的应用正在尝试下载一些 json 文件,每个文件下载后都会写入领域对象,该过程大约需要一分钟。

坏消息是当用户在此过程中单击主页按钮时,应用程序在返回前台时挂起。

问题:即使应用在后台,我如何保持写入事务继续进行?

【问题讨论】:

  • 你能在开发中重现这个错误吗?您是否收到任何崩溃报告或在日志中看到任何错误?
  • 主要和辅助Realm文件的NSFileProtection属性是什么?由于 Realm 数据库是磁盘上的文件,因此它们与文件系统上的任何其他项目一样受制于相同的系统级加密访问要求。如果设置了 NSFileProtectionComplete(这是 iOS 8+ 中的默认设置),则在设备锁定时将无法访问这些文件。有关详细信息,请参阅 Apple 指南:developer.apple.com/library/ios/documentation/Cocoa/Reference/…
  • @jpsim 感谢您的回复,但我对 swift 编程很陌生,所以对于 NSFileProtection 的检查/做什么/在哪里没有确切的想法。我怎样才能将它们设置为 NSFileProtectionNone 这样它就不会阻碍 Realm 写事务?
  • 我鼓励您阅读我链接到的参考文档。这应该包含所有相关信息的详细信息。您还可能会发现 Realm 文档的这个正在进行中的部分很有用:gist.github.com/jpsim/b976f546c5b4bf6231c3
  • @jpsim 好的,谢谢! Realm 的 WIP 文档的解释很有帮助。

标签: swift2 ios9 realm


【解决方案1】:

主要和辅助Realm文件的NSFileProtection属性是什么?由于 Realm 数据库是磁盘上的文件,因此它们与文件系统上的任何其他项目一样受制于相同的系统级加密访问要求。如果设置了 NSFileProtectionComplete(这是 iOS 8+ 中的默认设置),则在设备锁定时将无法访问这些文件。有关详细信息,请参阅 Apple 指南:https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/index.html#//apple_ref/doc/constant_group/File_Protection_Values

您还可能会发现 Realm 文档的这个正在进行中的部分很有用:https://gist.github.com/jpsim/b976f546c5b4bf6231c3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 2020-07-05
    相关资源
    最近更新 更多