在NSift中将NSDictionaries写入文件存在限制 . 基于我从api docs和this stackoverflow answer学到的东西,键类型应该是NSString,值类型也应该是NSx类型,Int,String和其他swift类型可能不起作用 . 问题是,如果我有一个字典,如: Dictionary<Int, Dictionary<Int, MyOwnType>>
,如何在swift的plist文件中写入/读取它?
在NSift中将NSDictionaries写入文件存在限制 . 基于我从api docs和this stackoverflow answer学到的东西,键类型应该是NSString,值类型也应该是NSx类型,Int,String和其他swift类型可能不起作用 . 问题是,如果我有一个字典,如: Dictionary<Int, Dictionary<Int, MyOwnType>>
,如何在swift的plist文件中写入/读取它?
1 回答
无论如何,当你想将
MyOwnType
存储到文件时,MyOwnType
必须是NSObject
的子类并且符合NSCoding
协议 . 像这样:然后,这是
Dictionary
:所以,这是你的问题:
您可以使用
NSKeyedArchiver
来编写,并使用NSKeyedUnarchiver
来读取:但在你的问题正文中:
事实上,
NSKeyedArchiver
format is binary plist . 但是如果你想要那个字典 as a value of plist ,你可以用NSKeyedArchiver
序列化Dictionary
到NSData
: