如何使用NSUserdefaults保存设置

时间:2015-12-15 22:29:41

标签: ios storage nsuserdefaults

我正在制作小费计算器,并且要求设置页面与计算器一起使用。在计算器中,当选择每个选项时,分段控件实现三个选项,尖端的值和总变化的值。在我的设置标签中,我希望能够让用户保存默认的提示百分比。我知道我需要使用NSUserdefaults,但是我不知道如何使用两个不同的页面(或者就此而言一页)。如果我想要达到的目标不清楚,请告诉我,我已尽力解释。

以下是视图控制器的代码:

@IBAction func onEditingChanged(sender: AnyObject) {

    var tipPercentages = [0.18, 0.2, 0.22]

    let tipPercentage = tipPercentages[tipControl.selectedSegmentIndex]

    let billAmount = billField.text!._bridgeToObjectiveC().doubleValue

    let billAmt = billAmount

    let tip = billAmt * tipPercentage

    let total = billAmt + tip

    tipLabel.text = String(format:"$%.2f", tip)

    totalLabel.text = String(format:"$%.2f", total)

}

以下是我对settingsViewController的了解:

import UIKit

class SettingsViewController: UIViewController {

@IBOutlet weak var defaultTipControl: UISegmentedControl!



@IBAction func actDefaultTipCont(sender: AnyObject) {

    var tipPercentages = [0.18, 0.2, 0.22]

    var tipPercentage = [defaultTipControl.selectedSegmentIndex]

    let defaults = NSUserDefaults.standardUserDefaults()

    defaults.setObject(tipPercentage, forKey: "tippingDefault")

    defaults.setInteger(123, forKey: "tippingInteger")

    defaults.synchronize()

}

我刚刚使用settingsViewController试图让它工作,它可能都必须重做。以下是两个不同页面的视图图片:

Entry View

Settings Page

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

要保存然后检索数据,您需要执行以下操作:

let valueToSave = tipAmount;
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(valueToSave, forKey: "tipAmount")

然后检索它并在主控件上使用它(例如)执行此操作:

let defaults = NSUserDefaults.standardUserDefaults()
tipAmount = defaults.objectForKey("tipAmount")

valueForKey方法返回之前在该键中保存的内容

NSUserdefaults基本上只是一个字典,可以在不同的启动时保留,所以只需检查是否保存了特定密钥的值来访问它