领域 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 文件的路径时(无论是默认文件还是新文件),您必须确保路径是绝对路径,包括文件名。
现在我正在从 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 文件的路径时(无论是默认文件还是新文件),您必须确保路径是绝对路径,包括文件名。