无法为NSUbiquitousKeyValueStore设置值

时间:2019-05-22 18:22:55

标签: swift xcode

我正在尝试简单地测试iCloud的键值存储,并使用模拟器和我的设备(已登录到iCloud)将一些整数和字符串设置为默认容器。但是,当我调用saveSettings()时,出现“ NSUbiquitousKeyValueStore ... setValue:forUndefinedKey ...此类与键val1的键值编码不兼容”的错误。我已经设置了应用程序ID和配置文件,并被告知NSUbiquitousKeyValueStore的工作方式类似于UserDefaults,那么我可能会丢失什么?我还尝试了cloudStore.set()进行同步,但是cloudStore.value(forKey :)导致了同样的错误。

struct Keys {
    static let val1  = "val1"
    static let val2 = "val2"
    static let text = "text"
}

func saveSettings() {
    let cloudStore = NSUbiquitousKeyValueStore.default

    cloudStore.setValue(segmented1.selectedSegmentIndex, forKey: Keys.val1)
    cloudStore.setValue(segmented2.selectedSegmentIndex, forKey: Keys.val2)
    cloudStore.setValue(textField.text, forKey: Keys.text)

    if cloudStore.synchronize() {
        print("Syncronized!")
    } else {
        print("Failed to syncronize...")
    }
}

1 个答案:

答案 0 :(得分:0)

好,所以我要寻找的是cloudStore.set()和cloudStore.object()。