Swift版本3。
我正在努力将我的realm.default文件在启动时复制到我的应用程序中,如果它不存在,那么我可以将它打包为分发的一部分。该文件需要是可变的,因此我将其复制到文档目录。
不幸的是,我收到的文件并不存在。我已经验证路径是正确的,并且.app中包含文件。
话虽如此,该文件有一个白色圆圈,上面有一条线(不要输入类型),并说当我尝试打开它时,我无法在这种mac上打开它。我可以通过选择show package contents看到内容,文件包含在。
中上面的文字..
以下是我的App Delegate中加载领域文件的代码:
func applicationWillTerminate(_ application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
func openRealm() {
let defaultRealmPath = Realm.Configuration.defaultConfiguration.fileURL!
let bundleReamPath = Bundle.main.path(forResource: "default", ofType:"realm")
if !FileManager.default.fileExists(atPath: String(describing: defaultRealmPath)) {
do
{
try FileManager.default.copyItem(atPath: bundleReamPath!, toPath: String(describing: defaultRealmPath))
}
catch let error as NSError {
// Catch fires here, with an NSError being thrown
print("error occurred, here are the details:\n \(error)")
}
}
}
以下是错误消息(为上下文加粗):
发生错误,以下是详细信息: 错误域= NSCocoaErrorDomain代码= 4"文件“default.realm”不存在。"的UserInfo = {NSSourceFilePathErrorKey = /用户/用户名/库/开发商/ CoreSimulator /设备/ 4965D609-499A-4AE5-8ECC-3266DAE4BA87 /数据/容器/捆绑/应用/ B324E72E-2B5A-4A02-BC2C-FB542FDA6957 / AppName的.app / default.realm ,NSUserStringVariant =( 复制 ),NSDestinationFilePath = file:/// Users / username / Library / Developer / CoreSimulator / Devices / 4965D609-499A-4AE5-8ECC-3266DAE4BA87 / data / Containers / Data / Application / 565716DD-E903-409F-B7C8-20154B0DF6BA / Documents /default.realm,NSFilePath = / Users / username / Library / Developer / CoreSimulator / Devices / 4965D609-499A-4AE5-8ECC-3266DAE4BA87 / data / Containers / Bundle / Application / B324E72E-2B5A-4A02-BC2C-FB542FDA6957 / AppName。 app / default.realm,NSUnderlyingError = 0x618000241bc0 {错误域= NSPOSIXErrorDomain代码= 2"没有这样的文件或目录"}}
任何人对此都有任何想法。至少,路径一直到用户/用户名/库/开发人员/ CoreSimulator / Devices / 4965D609-499A-4AE5-8ECC-3266DAE4BA87 / data / Containers / Bundle / Application / B324E72E-2B5A-4A02-BC2C-FB542FDA6957 /AppName.app/存在,然后该文件包含在包中。