NSDate类型的附加值不起作用

时间:2016-02-14 09:25:44

标签: arrays swift datepicker append nsdate

我的View Controller中有一个日期选择器。我想在AnyObject类型的字典中追加一个数组(我也尝试创建一个类型为NSDate的新数组)。附加总是失败(没有错误,但数组保持为零)。

这是我的代码

var zulernen =  NSUserDefaults.standardUserDefaults().objectForKey("lernen") 
     as? [String : [AnyObject]] ?? 
     [String : [AnyObject]](
       dictionaryLiteral: ("Fach1",[]),("Thema", []),("Date",[]),("Was", [])
     )

以下是我将数组附加到字典中的方法:

    zulernen["Fach1"]?.append(Fach.text!)
    zulernen["Thema"]?.append(Thema.text!)
    zulernen["Was"]?.append(waszulernen.text!)
    zulernen["Date"]?.append(Date.date)

    defaults.setObject(zulernen, forKey: "lernen")
    defaults.synchronize()

除了附加zulernen [“Date”]之外,字典中所有项目的附加工作都有效。问题在哪里?

var Stichfragen =  NSUserDefaults.standardUserDefaults().objectForKey("Stichfragen") as? [Int : [String]]  ?? [Int : [String]](dictionaryLiteral: (1,[]),(2, []),(3,[]),(4, []),(5, []))

    Stichfragen[1]?.append(a.text! ?? "")
    Stichfragen[1]?.append(b.text! ?? "")
    Stichfragen[2]?.append(c.text! ?? "")
    Stichfragen[2]?.append(d.text! ?? "")
    Stichfragen[3]?.append(e.text! ?? "")
    Stichfragen[3]?.append(f.text! ?? "")
    Stichfragen[4]?.append(g.text! ?? "")
    Stichfragen[4]?.append(h.text! ?? "")
    Stichfragen[5]?.append(i.text! ?? "")
    Stichfragen[5]?.append(j.text! ?? "")

1 个答案:

答案 0 :(得分:1)

我认为您的数据结构令人困惑。如果我理解正确,你实际上想要存储一个数组,这个对象有四个字段,主题,主题,任务和日期。相反,您要存储包含这些字段的四个数组,因此要重新创建一个对象,您必须从四个不同的列表中提取它,并且创建一个对象同样复杂。删除其中一个对象甚至更多,导致各种问题,包括你在这里遇到的问题。

您应该保留表示此对象{0}的字典数组。请注意你如何更简洁。

[[String: AnyObject]]

现在,您可以使用更具可读性的代码填充此数据结构:

var toStudy = defaults.objectForKey("toStudy") 
    as? [[String: AnyObject]] ?? [[String:AnyObject]]()