ios – iCloud键值存储同步问题(未调用NSUbiquitousKeyValueStoreDidChangeExternallyNotification)

前端之家收集整理的这篇文章主要介绍了ios – iCloud键值存储同步问题(未调用NSUbiquitousKeyValueStoreDidChangeExternallyNotification)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为iOS编写一个小型通用游戏.
高分将通过iCloud Key / Value商店在设备上同步.

获得最新分数:

func retrieveHighestscore() -> Int64 {
        let iCloudscore: Int64 = NSUbiquitousKeyValueStore.defaultStore().longLongForKey(KeyValueKeyClassification.KeyHighscore.toRaw())
        let localscore: Int64 = Int64(NSUserDefaults.standardUserDefaults().integerForKey(KeyValueKeyClassification.KeyHighscore.toRaw()))
        var result: Int64 = 0

        if localscore > iCloudscore {
            storeNewHighscore(localscore)
            result = localscore
        } else {
            storeNewHighscore(iCloudscore)
            result = iCloudscore
        }
        return result
    }

存储新的高分

func storeNewHighscore(newscore: Int64) {
        NSUbiquitousKeyValueStore.defaultStore().setLongLong(newscore,forKey: KeyValueKeyClassification.KeyHighscore.toRaw())
        NSUserDefaults.standardUserDefaults().setInteger(Int(newscore),forKey: KeyValueKeyClassification.KeyHighscore.toRaw())
        if NSUbiquitousKeyValueStore.defaultStore().synchronize() {
            println("Synched Successfully")
        }
    }

但由于某种原因,分数不同步.

>没有错误
>没有崩溃
>没有空值

我总是得到当前设备的最高分,而不是其他设备.

原因可能在于itunesconnect还是我的代码有问题?我正在使用ipad和iphone进行测试,两者都登录到我自己的icloud帐户.

我正在注册这样的更改:

func application(application: UIApplication,didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.

        NSNotificationCenter.defaultCenter().addObserver(self,selector: "icloudKeyValueChanged",name: NSUbiquitousKeyValueStoreDidChangeExternallyNotification,object: nil)
        if NSUbiquitousKeyValueStore.defaultStore().synchronize() {
            println("initial Synched Successfully")
        }

        return true
    }

但是从不调用函数’icloudKeyValueChanged’.

iCloud功能一切正常,因为它似乎:

解决方法

我有同样的问题.在我的设备上记录iCloud并重新登录,解决了问题:-)
原文链接:https://www.f2er.com/iOS/331031.html

猜你在找的iOS相关文章