使用日期作为保存到 plist 的字典中的键

Using Dates as keys in a dictionary saved to a plist

我有一本字典,可以保存到 plist 文件并从中读取。

当字典类型为 [String : String] 时,我可以毫无问题地添加条目并将其保存到 plist。

如果我将其类型更改为 [Date : String],我可以添加条目,并且可以将其保存到 plist,但是当我尝试读取它时,它是空的。

我没有修改任何代码,除了变量声明中的类型和读取和写入 plist 的两个函数中的类型。

我错过了什么?

在 属性 列表中,所有键都必须是字符串。

来自documentation

And although NSDictionary and CFDictionary objects allow their keys to be objects of any type, if the keys are not string objects, the collections are not property-list objects.

如果你使用的是PropertyListSerialization而不是NSDictionaryNSArray方便的读写方法,你肯定会报错。