Ios 如何序列化包含NSDictionary的NSDictionary

Ios 如何序列化包含NSDictionary的NSDictionary,ios,json,swift,Ios,Json,Swift,我正在尝试序列化包含NSDictionary数组的NSDictionary并将其保存到文件中。我的代码如下所示(ships是一个nsdictionary数组,gameOver、paused和level只是boolean或int;每个ship dictionary只是由基本类型组成(没有嵌套的dictionary)) 我在排队时遇到了一个例外 let jsonData = try! JSONSerialization.data(withJSONObject: gameDictionary, opt

我正在尝试序列化包含NSDictionary数组的NSDictionary并将其保存到文件中。我的代码如下所示(ships是一个nsdictionary数组,gameOver、paused和level只是boolean或int;每个ship dictionary只是由基本类型组成(没有嵌套的dictionary))

我在排队时遇到了一个例外

let jsonData = try! JSONSerialization.data(withJSONObject: gameDictionary, options: .prettyPrinted)
如果我删除ships键值,它可以正常工作。
有什么不对劲的提示或替代方法吗?

您会发现什么错误?您有一个
尝试
,那么在出现错误时
捕获
中有什么?让jsonData=try!JSONSerialization.data(使用jsonObject:anyShip.convertToDictionar(),选项:。预打印)有效吗?我猜您的
convertToDictionar()
没有返回JSON有效字典。为什么要在Swift 3中使用
NSDictionary
?使用合适的Swift字典。请不要忍受使用
JSONSerialization
。使用“神奇船舶”词典是否包含任何自定义类?JSONSerialization无法将自定义类转换为标准数据类型。如果是这种情况,您将得到此错误。***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“JSON写入中的类型无效(/*自定义类的名称*/)”是的,事实证明ship容器确实有一个自定义类,我必须手动序列化。
let jsonData = try! JSONSerialization.data(withJSONObject: gameDictionary, options: .prettyPrinted)