共享用户默认值
Shared UserDefaults
我想通过共享 UserDefaults(与 AppGroup)在 iPhone 和 Apple Watch 之间共享数据,但是这两者之间的通信不起作用。当我查看共享容器中实际存储的文件时,我发现它们使用的不是同一个容器。有人可以帮我解决这个问题吗?
手表上的代码:
let suiteName = "group.suitname"
if let userDefaults = UserDefaults(suiteName: suiteName) {
userDefaults.set(inputText, forKey: "watchTransfer")
let groupPath = FileManager().containerURL(forSecurityApplicationGroupIdentifier: suiteName)!.appendingPathComponent("Library/Preferences")
print(groupPath)
print(userDefaults.string(forKey: "watchTransfer") ?? "Nothing stored")
}
iPhone 上的代码:
let suiteName = "group.suitname"
if let userDefaults = UserDefaults(suiteName: suiteName) {
let string = userDefaults.string(forKey: "watchTransfer") ?? "Nothing stored"
print("Fetched: \(string)")
let groupPath = FileManager().containerURL(forSecurityApplicationGroupIdentifier: suiteName)!.appendingPathComponent("Library/Preferences")
print(groupPath)
return string
}
“现代”WatchOS 无法做到这一点。
参考:
您需要使用其他传输机制。喜欢 Watchconnectivity.
我想通过共享 UserDefaults(与 AppGroup)在 iPhone 和 Apple Watch 之间共享数据,但是这两者之间的通信不起作用。当我查看共享容器中实际存储的文件时,我发现它们使用的不是同一个容器。有人可以帮我解决这个问题吗?
手表上的代码:
let suiteName = "group.suitname"
if let userDefaults = UserDefaults(suiteName: suiteName) {
userDefaults.set(inputText, forKey: "watchTransfer")
let groupPath = FileManager().containerURL(forSecurityApplicationGroupIdentifier: suiteName)!.appendingPathComponent("Library/Preferences")
print(groupPath)
print(userDefaults.string(forKey: "watchTransfer") ?? "Nothing stored")
}
iPhone 上的代码:
let suiteName = "group.suitname"
if let userDefaults = UserDefaults(suiteName: suiteName) {
let string = userDefaults.string(forKey: "watchTransfer") ?? "Nothing stored"
print("Fetched: \(string)")
let groupPath = FileManager().containerURL(forSecurityApplicationGroupIdentifier: suiteName)!.appendingPathComponent("Library/Preferences")
print(groupPath)
return string
}
“现代”WatchOS 无法做到这一点。
参考:
您需要使用其他传输机制。喜欢 Watchconnectivity.