无法访问应用程序组文件夹中的领域数据库

Unable to access Realm database in app group folder

为了与手表套件扩展一起使用,我无法访问存储在我的领域数据库中的数据。我尝试按照此 Guide,将默认领域的路径移动到应用程序组文件后,我可以成功打印它,但是如果我尝试打印领域中的对象数量,它 returns 0 ,这导致我的 Table 为空。我在我的 ios 和 watch 目标中都启用了应用组,并使用了正确的应用组名称。这是我在应用程序委托中设置默认领域文件夹的位置。

    let directory: NSURL = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.io.github.brady131313.Deck-of-Death")!
    let realmPath = directory.path!.stringByAppendingPathComponent("db.realm")
    Realm.defaultPath = realmPath

您将 realmPath 设置为 directory.path 但事实并非如此。更改 realmPath 定义。

验证 return 由 NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.io.github.brady131313.Deck-of-Death") 编辑的目录是否指向包含 Containers/Shared/AppGroup 的路径。如果您在应用程序组 ID 中输入错误或没有设置必要的权利/配置文件,它会很乐意 return 在您的普通容器中创建一个路径。您应该会在扩展程序和父应用程序中看到相同的路径 returned。

您可能想要查看 Realm 的示例 WatchKit 应用程序,以了解将 Realm 与应用程序组一起使用的工作示例。您可以在 https://github.com/realm/realm-cocoa/tree/master/examples/ios/objc 的 Xcode 项目中找到它。

问题是我在 let realm = Realm() 之后设置了默认领域路径,所以它默认为旧路径而不是新路径。