领域 Swift 2.0:"Operation not permitted" - 仅在设备上

Realm Swift 2.0: "Operation not permitted" - only on device

现在我正在从 Swift 1.2 迁移到 Swift 2.0。

我正在做的项目使用 Realm 作为数据库。 Swift 1.2 在设备和模拟器上一切正常。但是当 运行 应用程序在设备上时,Swift 2.0 出现此错误:

fatal error: 'try!' expression unexpectedly raised an error: Error
Domain=io.realm Code=1 "open() failed: Operation not permitted"
UserInfo=0x145e2bc0 {Error Code=1, NSLocalizedDescription=open() failed:
Operation not permitted}: file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-
700.0.57.3/src/swift/stdlib/public/core/ErrorType.swift, line 50

正在使用此基本路径初始化领域:

NSSearchPathForDirectoriesInDomains(.DocumentDirectory,
      .UserDomainMask, true).first!

即用户文档目录。我可以使用 NSFileManager 访问文件并在那里实际看到 Realm 文件。

任何线索如何调试这个问题?似乎 Realm 在初始化时崩溃了。

如果您遇到 open() failed 错误,这通常意味着您提供的路径在某些方面仍然无效。

在这种情况下,我猜您可能没有指定要在该文档路径中创建的 Realm 文件的实际文件名。在设置 Realm 文件的路径时(无论是默认文件还是新文件),您必须确保路径是绝对路径,包括文件名。