Swift:在字典中追加对象

时间:2015-08-23 19:07:15

标签: ios swift dictionary

我想将带有数组的字典添加到我的arrayOfDictionary,我在this link上尝试了建议的答案,但它对我不起作用。我在字典中附加对象时遇到问题。

这是我的代码:

func formatADate() {
    var dateFormatter = NSDateFormatter()
    dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle

    var journalDictionary = Dictionary<String, [Journal]>()    
    for index in 0..<self.sortedJournal.count {
        let dateString = dateFormatter.stringFromDate(self.sortedJournal[index].journalDate)
        var oldDateString = ""

        // Split Date
        var dateStringArr = split(dateString){$0 == " "}
        var newDateString = "\(dateStringArr[0]) \(dateStringArr[2])"

        // Append journal to corresponding dates
        // journalDictionary[newDateString]? += [self.sortedJournal[index]]
        // journalDictionary[newDateString]!.append(self.sortedJournal[index])
        journalDictionary[newDateString]?.append(self.sortedJournal[index])

        // add to array of journal
        if !(newDateString == oldDateString) || (oldDateString == "") {
            arrayOfJournalDictionary.append(journalDictionary)
        }
    }            
    println(arrayOfJournalDictionary)
}

使用这行代码,它给了我空对象。 journalDictionary[newDateString]?.append(self.sortedJournal[index])

有关如何完成/解决此问题的任何建议?我在Swift非常业余,所以任何帮助都将不胜感激!谢谢。

1 个答案:

答案 0 :(得分:1)

哇,日期魔术与字符串分裂和东西,yeiks。你已经在使用NSDateFormatters了,但错误的原因。由于c++: error: unrecognized command line option '-framework'是一个日期,使用格式化程序为你提供你想要的那个日期的确切字符串,不要让它给你一些通用的字符串,拆分和连接和argh ... NOBODY会明白你想要的是什么在那里。

回到问题:

如果你写

,你的journalDate是空的
journalDictionary

你告诉程序阅读&#34; index&#34; journalDictionary[newDateString]?.append(self.sortedJournal[index]) 如果有什么需要,并为其附加一个新值。

你看到错误了吗?

如果有什么 - &gt;您还没有为任何给定密钥插入初始空newDateString的逻辑。

在代码中的某个时刻,您必须像这样设置数组:

[Journal]

或者更有可能:

journalDictionary["myKey"] = []