我有以下代码将应用程序的数据推送到云端,并使用iCloud值更新设备存储。
但是,它不会使用iCloud值更新设备上的存储空间。
要同步的两个最重要的值是硬币和点数,如果出现问题,我在下面的代码中都包含这两个值。
更新iCloud:
func updateiCloud(){
if (Reachability.isConnectedToNetwork()){
if (defaults.bool(forKey: "UpdatedLocal")){
iCloudKeyStore?.set(Int64(points), forKey: "Points")
iCloudKeyStore?.set(Int64(coins), forKey: "Coins")
iCloudKeyStore?.synchronize()
//other values are synced
}
}
}
更新本地:
func updateLocal() {
if (Reachability.isConnectedToNetwork()){
if (!defaults.bool(forKey: "UpdatedLocal")) {
defaults.set(iCloudKeyStore?.longLong(forKey: "Points"), forKey: "Points")
points = defaults.integer(forKey: "Points")
defaults.set(iCloudKeyStore?.longLong(forKey: "Coins"), forKey: "Coins")
coins = defaults.integer(forKey: "Coins")
defaults.set(true, forKey: "UpdatedLocal")
}
else {
defaults.set(false, forKey: "firstLaunch")
AppDelegate.firstLaunch = false
defaults.set(true, forKey: "UpdatedLocal")
}
}
else {
defaults.set(false, forKey: "UpdatedLocal")
}
}