帮助了解与Realm相关的问题。有一个iOS和Watch Extension应用程序。我能够连接到每个Realm base,但是当你向其中添加信息时 - 例如,在iOS应用程序中,它不会出现在Watch上。如何同步显示?
我在两种情况下都使用此功能:
func setDefaultRealmPath()
{
let directory: URL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.gurman.watchTestApp")!
let fileRealmURL = directory.appendingPathComponent("db.realm")
realm = try! Realm(fileURL: fileRealmURL)
var config = Realm.Configuration.defaultConfiguration
config.fileURL = fileRealmURL
Realm.Configuration.defaultConfiguration = config
print("file url: \(realm.configuration.fileURL!)")
}
请帮忙!
答案 0 :(得分:1)
在watchOS 1中,观看应用是父应用的共享扩展,可以访问共享文件,从watchOS 2开始,情况已不再如此。
watchOS 2上的应用程序与其父iOS应用程序完全分开(我认为它们可以在父应用程序关闭时运行)。因此,您需要将iOS应用程序中所做的更改传达给手表。
您可以在WatchConnectivity框架中使用WCSession
在两个平台之间发送数据。如果您有一个预先捆绑的Realm文件,其中包含一组初始数据,那么您应该能够在应用程序最初启动时发送整个文件。在此之后,您应该只发送更改为手表的键值数据,以便保持最新状态。