当我正在学习Swift 4的Codable
协议并思考如何使用它时,我想了解一个类型在创建它时可能对未来进化的影响{{1} }。
在通常的代码中,如果我通过向其添加属性来更改类型,我只需要更新我的本地代码库以对此更改作出反应(例如,通过向我的类型初始化调用添加新参数)。
另一方面,如果我的类型是Codable
并且我已经将它与远程服务器结合使用(通过发送和接收编码为JSON的这种类型),则不会有问题添加新属性?
例如,假设我收到了由我的应用程序的先前版本编码的JSON(仍由服务器存储),并且我尝试使用新版本对其进行解码,解码过程将作为数据失败新酒店无法使用。
我应该如何应对这种情况? "锁定"我的类型在某种程度上,禁止它在未来发展? 如果真的需要解码不兼容的数据,最简单的解决方法是什么?