我是否正确地将这些数据存储到iCloud?

时间:2015-10-30 06:30:26

标签: swift sprite-kit icloud

所以我遇到了这个教程,然后跟着它。我只是用它来存储几个boolenas。

无论如何,我并不完全理解这个脚本如何设置存储到iCloud,因为我没有做任何与iCloud相关的事情,只是简单地允许它在功能下。我也在几个场景中测试了它并且没有任何问题。你能想到这可能成为问题的时间吗?

http://nicemohawk.com/blog/2015/08/storing-key-value-data-in-icloud-with-swift/

如果您愿意查看我的代码以确保我做得对,请做!发生的事情是他们的六个键是" HASpayedFOR1"," HASpayedFOR2"这些角色已被解锁,这些存储了一个bool。它们是两个存储空间。

NSUserDefaults的 和NSUbiquitousKeyValueStore

NSUserDefaults通常存储所有内容和所有游戏值,NSUmbiquitousKeyValueStore在"云"中保存我想要的所有内容。我有两个主要功能,一个从云中恢复,另一个保存到它。这些在适当时调用。请注意,这些功能都不允许它向后移动。因此,例如,恢复代码只会将事物设置为true,而保存代码只会将事物设置为true。

您是否可以看到由于无法预料的网络错误而导致的任何崩溃?

var iCloudKeyStore: NSUbiquitousKeyValueStore? = NSUbiquitousKeyValueStore()

    func c_reportCloud()
    {
        if let iCloudKeyStore2 = iCloudKeyStore
        {
            for var i = 0; i < 7; i++
            {
                print("Icloud for " + String(i) + "  :")
                println(iCloudKeyStore2.boolForKey("HASpayedFOR" + String(i)))

            }
        }
    }



    func c_restoreCharecters()
    {
        iCloudKeyStore?.synchronize()
        let defaults = NSUserDefaults.standardUserDefaults()


        var current:[Bool] = []

        for var i = 0; i < 7; i++
        {
            current.append(defaults.boolForKey("HASpayedFOR" + String(i)))
        }

        var cloud:[Bool] = []

        if let iCloudKeyStore2 = iCloudKeyStore
        {
            for var i = 0; i < 7; i++
            {

                cloud.append(iCloudKeyStore2.boolForKey("HASpayedFOR" + String(i)))
            }
        }
        var meme:[Bool] = []
        for var i = 0; i < 7; i++
        {
            //If we dont have it and the cloud does then get it from the cloud!
            if (current[i] == false)
            {
                if (cloud[i] == true)
                {
                    meme.append(true)
                    defaults.setBool(true, forKey: "HASpayedFOR" + String(i))
                }
                else
                {
                    meme.append(false)
                }
            }
            else
            {
                meme.append(false)
            }
        }


        //Force the opening of them


        if let it = spriteKit.scene as? Menu
        {

            it.open(meme)

        }



       // iCloudKeyStore?.setString(textField.text, forKey: iCloudTextKey)



        /*for var i = 0; i < 7; i++
        {
            print("Has unlocked charecter: " + String(i))
            println(defaults.boolForKey("HASpayedFOR" + String(i)))
        }*/
    }


    func c_savePlayers()
    {
        iCloudKeyStore?.synchronize()
        let defaults = NSUserDefaults.standardUserDefaults()


        var current:[Bool] = []

        for var i = 0; i < 7; i++
        {
            current.append(defaults.boolForKey("HASpayedFOR" + String(i)))
        }

        var cloud:[Bool] = []

        if let iCloudKeyStore2 = iCloudKeyStore
        {
            for var i = 0; i < 7; i++
            {

                cloud.append(iCloudKeyStore2.boolForKey("HASpayedFOR" + String(i)))
            }
        }


        if let iCloudKeyStore2 = iCloudKeyStore
        {
            for var i = 0; i < 7; i++
            {
                //If we have something the cloud doesnt
                if (current[i] == true)
                {
                    if (cloud[i] == false)
                    {
                        iCloudKeyStore2.setBool(true, forKey: "HASpayedFOR" + String(i))
                    }
                }
            }
        }

        iCloudKeyStore?.synchronize()
    }

非常感谢!

0 个答案:

没有答案
相关问题