如何确定“NSUbiquitousKeyValueStore.default.set”结果是不是成功

Posted

技术标签:

【中文标题】如何确定“NSUbiquitousKeyValueStore.default.set”结果是不是成功【英文标题】:How to find out if the "NSUbiquitousKeyValueStore.default.set" result was successful如何确定“NSUbiquitousKeyValueStore.default.set”结果是否成功 【发布时间】:2020-12-12 14:27:50 【问题描述】:

我正在将数据从我的应用程序写入 iCloud,如下所示。如何判断这个过程是否成功?

NSUbiquitousKeyValueStore.default.set("data", forKey: "key")  
NSUbiquitousKeyValueStore.default.synchronize()

参考:https://developer.apple.com/documentation/foundation/nsubiquitouskeyvaluestore

【问题讨论】:

【参考方案1】:

设置好后应该可以得到值,看看是否设置正确。

我认为重要的是要注意您的数据实际上是一个字符串,因此您将使用 NSUbiquitousKeyValueStore.default 的 string() 函数来获取值。获取存储值所需的函数将根据值的变量类型而变化。

// Set value
let data: String = "data"
NSUbiquitousKeyValueStore.default.set(data, forKey: "key")  
NSUbiquitousKeyValueStore.default.synchronize()

// Try to get value
if let dataString = NSUbiquitousKeyValueStore.default.string(forKey: "key") 
    if dataString == data 
        // The data stored correctly
     else 
        // Handle condition if data is not stored
    

【讨论】:

谢谢,但此解决方案不起作用。因为即使它阻塞了应用程序,它也会在运行时立即返回数据。但是,当您将数据写入部分注释行并再次打开应用程序时,数据将不会返回。

以上是关于如何确定“NSUbiquitousKeyValueStore.default.set”结果是不是成功的主要内容,如果未能解决你的问题,请参考以下文章

如何确定样本量

如何确定样本量

如何确定滚动视图中当前可见的区域并确定中心?

Flink on YARN时,如何确定TaskManager数

如何确定 div 是不是滚动到底部?

七步法计算测量不确定度:第四步