NSUserDefaults永久存储和整数转换Swift Xcode

NSUserDefaults永久存储和整数转换Swift Xcode,swift,nsuserdefaults,data-storage,Swift,Nsuserdefaults,Data Storage,这里有一个相当新的编码员,我有一个关于NSUserDefault和永久存储的问题 我在玩一个有两个标签的应用程序,一个是玩家的时间,另一个是玩家的时间和总时间的记录,我希望这些时间能被永久记录下来 我有一个数组,我在其中记录这些时间,称为countTotal,我将它设置为一个全局变量 var countTotal: [Int] = [0,0,0] 在一个controllerInterface中,它根据计时器更新该数组中的时间。我遇到的问题是永久保存此数据 我尝试使用NSUserDefaults

这里有一个相当新的编码员,我有一个关于NSUserDefault和永久存储的问题

我在玩一个有两个标签的应用程序,一个是玩家的时间,另一个是玩家的时间和总时间的记录,我希望这些时间能被永久记录下来

我有一个数组,我在其中记录这些时间,称为countTotal,我将它设置为一个全局变量

var countTotal: [Int] = [0,0,0]
在一个controllerInterface中,它根据计时器更新该数组中的时间。我遇到的问题是永久保存此数据 我尝试使用NSUserDefaults,但起初我对数据类型有问题,所以我将它们全部转换为int变量 我使用了以下代码:

    NSUserDefaults.standardUserDefaults().setInteger(countTotal[0], forKey: "secondsSaved")
    NSUserDefaults.standardUserDefaults().setInteger(countTotal[1], forKey: "minutesSaved")
    NSUserDefaults.standardUserDefaults().setInteger(countTotal[2], forKey: "hoursSaved")

    var intSecondsSaved = Int(NSUserDefaults.standardUserDefaults().setInteger(countTotal[0], forKey: "secondsSaved"))
    var intMinutesSaved = Int(NSUserDefaults.standardUserDefaults().setInteger(countTotal[1], forKey: "minutesSaved"))
    var intHoursSaved = Int(NSUserDefaults.standardUserDefaults().setInteger(countTotal[2], forKey: "hoursSaved"))

    countTotal[0] += intSecondsSaved
    countTotal[1] += intMinutesSaved
    countTotal[2] += intHoursSaved

但当我重新打开应用程序时,数据不会保存

怎么了


而且,这些东西也不是紫色的。有没有关于这方面的建议?关于这方面的大量阅读假设我还不具备知识

要永久保存,您需要在NSUserDefault上使用
同步

NSUserDefaults.standardUserDefaults().synchronize()
这一行(以及以下两行)毫无意义:

var intSecondsSaved =
    Int(NSUserDefaults.standardUserDefaults()
        .setInteger(countTotal[0], forKey: "secondsSaved"))

那是胡说八道。您已经在用户默认设置中设置了此值。现在你又开始设置了?此外,当您设置它时,您将获取“结果”,将其转换为Int,并为其设置一个变量??但设置并没有意义的“结果”。当然,你想在这里做的是从NSUserDefaults中获取值,对吗?

“但是当我重新打开应用程序“你怎么知道?”时,数据不会保存?呈紫色?好吧,到目前为止,看起来你甚至不知道设置值和获取值之间的区别。因此,您还远远没有准备好编写此代码。你需要学习一些基本的编程概念。啊,我没有注意到。啊,我明白了,我以为我是在用赋值创建一个变量,我猜不是。是的,我想得到结果。我只想存储数组countTotal的三个值,所以如果我要更改:NSUserDefaults.standardUserDefaults().setInteger(countTotal[0],forKey:“secondsSaved”)到:NSUserDefaults.standardUserDefaults().synchronize().setInteger(countTotal[0],forKey:“secondsSaved”)这就行了吗?有关于NSUserDefaults的指南吗?不,那是不对的。最好的参考是文档。把NSUserDefaults放到谷歌,它可能是第一个链接。这是了解不同类可以做什么的最好方法。还有大量关于NSUserDefaults的教程。试试Ray Wenderlich网站。好的,t谢谢,在问这个问题之前,我看了两页,它们都没有什么信息。我现在正在阅读本课程的苹果文档,之后我将尝试Ray Wenderlich网站,谢谢,对不起,我帮不了更多的atm机。我现在在我的iPad上,快凌晨4点了。我的大脑快崩溃了。哈哈