重装iOS后,NSUserDefault数组为空(Swift)

时间:2015-04-17 04:20:19

标签: swift nsarray nsuserdefaults nsdecimalnumber

我的目标是在Swift中创建一个预算编制应用程序:

  1. 保存一组输入(数字)。
  2. 在重新加载时保存并加载数组。
  3. 这是代码的简短版本:

    var adding: [NSDecimalNumber] = []
    
    func clickAction {
    let addingAmount = NSDecimalNumber(string: textInput.text)
    adding.append(addingAmount) }
    
    defaults.setObject(adding, forKey: "addingArray")
    

    在viewDidLoad中:

    if let addingIsNotNil = defaults.arrayForKey("addingArray") as [AnyObject]! {
            var adding = defaults.arrayForKey("addingArray") as [AnyObject]!
        }
    

    解释:

    我创建了一个NSDecimalNumber数组来收集输入:

    在clickAction上,输入将附加到数组,更新的数组将分配给NSUserDefault。 (此时默认的println将正确显示整个数组。)

    问题是,如果我重新加载,相同的println现在是空的!我假设默认情况下肯定会在退出时保存,但由于第一个变量而在重新加载时变为空。

    var adding: [NSDecimalNumber] = []
    

    有没有人知道解决这个问题的方法?似乎在重新加载后,一切都将指向空的添加数组(我需要存储数字)。我尝试在clickAction中创建其他变量使用if else无效。

0 个答案:

没有答案