现在我正在从Swift 1.2迁移到Swift 2.0。
我正在开发的项目使用Realm作为数据库。在设备和模拟器上,Swift 1.2中的一切都运行良好。但是当我在设备上运行app时,我得到了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
使用此基本路径初始化Realm:
NSSearchPathForDirectoriesInDomains(.DocumentDirectory,
.UserDomainMask, true).first!
即。用户文档目录。我可以使用NSFileManager访问文件,并实际看到那里的Realm文件。
任何线索如何调试此问题?似乎Realm在初始化时崩溃了。
答案 0 :(得分:1)
如果您收到open() failed
错误,通常情况下,这意味着您提供的路径在某种程度上仍然无效。
在这种情况下,我猜你可能没有指定你希望在该Documents文件路径中创建的Realm文件的实际文件名。设置Realm文件的路径时(无论是默认路径还是新路径),您必须确保路径是绝对路径,直至并包括文件名。