我想将带有数组的字典添加到我的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非常业余,所以任何帮助都将不胜感激!谢谢。
答案 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"] = []