【发布时间】:2020-09-21 13:40:10
【问题描述】:
我已经检查了有关此问题的其他线程,但未能成功实施答案,因此求助于开始另一篇文章。对不起!
我目前正在完成 Swift 课程,并且在第一次使用 Realm 时遇到了一些问题。使用 Cocoapods 将 Realm 安装到我的应用程序中似乎是按计划进行的,但是在尝试打开 Realm 数据库(default.realm)时,我遇到了以下错误:
使用 Realm 浏览器打开时出错,要求提供加密密钥(不知道从哪里得到这个,但从其他帖子来看,这似乎与打开同步 Realm 文件的本地版本有关) : screenshot1
使用 Realm Studio 打开时出现错误消息: screenshot2
我曾尝试下载 Realm Studio 的早期版本,但无济于事。我还不想更新到 Xcode 12,因为我正在完成的课程与 Xcode 11 相关,而且我正在完成一个项目。似乎问题与领域有关。
以下是 cocoapods 版本等的一些详细信息:
豆荚:
- 领域 (5.4.2):
- 领域/标头 (= 5.4.2)
- 领域/标题 (5.4.2)
- RealmSwift (5.4.2):
- 领域 (= 5.4.2)
依赖关系:
- RealmSwift
SPEC REPOS:主干: - 领域 - RealmSwift
规格校验和:领域:ced868eb0254f8d33a21c06981355e5aa33bc005
RealmSwift: aedc4363150f3c61f91ae0537ed116d2d080a4ddPODFILE 校验和:4b5257d74bf1a8c39ac0b1f3a9a6e9fd23a03b98
可可豆类:1.9.3 ~
"Podfile.lock" 22L, 408C
以下是我正在运行的一些详细信息
产品名称:Mac OS X ProductVersion:10.15.5 BuildVersion:19F101
/Applications/Xcode.app/Contents/Developer Xcode 11.6 Build 版本 11E708
/usr/local/bin/pod 1.9.3 Realm (5.4.2) RealmSwift (5.4.2)
/bin/bash GNU bash,版本 3.2.57(1)-release (x86_64-apple-darwin19)
/usr/bin/git git 版本 2.24.3 (Apple Git-128)
这是来自 AppDelegate 的代码,不确定它是否有帮助,但打印语句是我找到 default.realm 文件的方式:
import UIKit
import CoreData
import RealmSwift
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
print(Realm.Configuration.defaultConfiguration.fileURL!)
let data = Data()
data.name = "Josh"
data.age = 13
do {
let realm = try Realm()
try realm.write {
realm.add(data)
}
} catch {
print("Error initialising new Realm: \(error)")
}
抱歉,但我才刚刚开始学习,并不知道在打开 default.realm 文件时从这里到哪里去,所以任何帮助都将不胜感激!
【问题讨论】:
-
欢迎来到 SO。在发布问题之前进行一些研究是个好主意。它可以节省大量时间。请参阅此question and answer 和this one。此外,Realm Browser 是一种已折旧的产品,不应使用。 Realm Studio 是 Realm 和 MongoDB Realm 的合适替代品。
-
另外,作为旁注,尽量避免使用与现有类相同的名称来命名类;
Data是一个以NSData开头的 Swift 类。尝试更具描述性;class UserClass: Object {保存用户数据或class CarClass: Object {保存有关特定汽车的信息 -
感谢杰伊的回复。我实际上找到了那些确切的帖子,但对于初学者来说,这有点难以理解。在发布问题之前,我尝试安装 3.10 版(根据第一个链接),但遇到了同样的问题。此外,我实际上并没有使用 mongoDB,所以第二个答案不适用。也许我正在学习的模块已经过时,所以我将使用不同的教程来学习 mongoDB Realm。再次感谢。附带说明一下,
Data类虽然不理想,但实际上是教程的一部分,并被用作 Realm 工作原理的示例,尽管如此 -
第二篇文章高度相关,因为 Realm 将在某个时候贬值,以支持 MongoDB Realm。您真的应该阅读其中的入门指南。我真的会推荐经典的 Realm SDK 5.x,Realm Getting Started。如果您想探索 Beta MongoDB 领域,请访问 Getting Started
-
我已经完成了第一个链接“Realm Getting Started”中的程序大约 5 次,使用一个全新的项目,最新版本的 Cocoapods、Realm 和 Realm Studio,但仍然得到“尝试打开 default.realm 文件时,此版本的 Realm 消息不支持打开格式版本 11 的 Realm 文件(使用此代码定位:
print(Realm.Configuration.defaultConfiguration.fileURL)。我想我可能会解雇 Realm 并选择 MongoDB Realm Beta 版,如果那将是未来的话。再次感谢