在我的项目中,我想同时使用一个Realm数据库与我的iOS 10应用程序和我的watchOs 3应用程序。所以我所做的是将框架添加到三个不同目标的嵌入式二进制文件中。这发生了很好的工作,但watchKit扩展似乎无法识别我在iOS环境中创建的对象。这两个设备之间如何共享Realm数据库?与WatchOS共享领域数据
4
A
回答
5
更新: 好,感谢chrisamanse的抬头,我做了这方面的一些更多的研究。
事实证明,应用程序组在watchOS 2上不再可用。观看应用程序不再作为手机上的分机运行;他们现在是两个孤立的进程,没有任何共享资源。
因此,这意味着有必要在手表和手机上维护一个单独的Realm文件,并通过WatchConnectivity框架传达所做的任何更改。
原文: 的iOS应用程序和扩展(无论是现在小部件和watchOS应用)需要考虑在自己单独的容器两个全独立的实体。默认情况下,扩展名无法访问其父应用程序容器内的任何文件。如果您要将Realm文件保存到默认路径(即“文档”文件夹),那么watchOS应用程序无法从此处访问它。
幸运的是,可以使用iOS的“应用程序组”功能指定父iOS应用程序和watchOS应用程序都可以访问的共享文件夹,并且可以读取和写入其中的任何Realm文件。
在您的应用中启用App Groups
权利后,只需将您的Realm文件的位置设置为指向该位置即可。
let sharedContainerURL = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.my.appgroups.bundleid")!
let realmURL = sharedContainerURL.appendingPathComponent("SharedRealm.realm")
let realmConfiguration = Realm.Configuration()
realmConfiguration.fileURL = realmURL
let realm = try! Realm(configuration: realmConfiguration)
有a tutorial on the Realm website解释如何使这项工作更详细,但是API和斯威夫特的版本已经过时了,在这一点上。
0
对于夫特3
我用下面的代码来共享境界分贝的应用程序和附加应用之间:
let sharedDirectory: URL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.your.app")! as URL
let sharedRealmURL = sharedDirectory.appendingPathComponent("db.realm")
Realm.Configuration.defaultConfiguration = Realm.Configuration(fileURL: sharedRealmURL)
相关问题
- 1. 在iOs 10和WatchOS 3(共享容器)之间共享数据
- 2. 共享域多领域麻烦
- 3. 共享领域之间的特定数据
- 4. WatchOS 2.0在iOS应用程序和WatchOS应用程序之间共享数据
- 5. Oracle共享内存领域不存在
- 6. 在用户之间共享领域
- 7. 你如何访问共享领域?
- 8. 共享类领域的Visual Basic
- 9. Solr的:通过共享领域
- 10. 如何使用领域移动平台与多个用户共享领域或领域对象?
- 11. 跨域cookie - 域间共享数据
- 12. 从数据库共享公共领域对象的应用程序
- 13. 与块共享数据
- 14. 公共领域的数据注解与MVC中的属性
- 15. 在Symfony中,跨子域共享数据
- 16. 与watchOS共享钥匙串2 - 所有关于项目设置?
- 17. 私人领域与公共accessor在c + +
- 18. 想要使用不同的数据源配置共享Tomcat领域
- 19. Excel中:自动更新数据透视表不共享无需取消领域
- 20. 许多领域模型中的EF共享一个数据上下文5
- 21. iOS应用程序和共享扩展使用不同的领域数据库
- 22. 保存数据与uniq的领域
- 23. 共享数据
- 24. 共享数据
- 25. 共享数据
- 26. 共享数据
- 27. 共享数据
- 28. 数据共享
- 29. 共享数据
- 30. 共享数据
作为watchOS 2.0,应用群组不再适用。 https://forums.developer.apple.com/thread/3927 – chrisamanse
我们唯一的选择是使用'WatchConnectivity'框架。 – chrisamanse
哦!这对我来说是新闻!谢谢你的提醒! – TiM