Swift枚举和NSCoding
发布时间:2020-12-14 04:35:01 所属栏目:百科 来源:网络整理
导读:我有一个带有String属性和NS Image属性的’Thing’对象; Thing类有encodeWithCoder:和decodeWithCoder:方法,我可以使用NSKeyedArchiver / Unarchiver归档和解压缩[Thing]数组. 到现在为止还挺好.现在我想通过一系列方向扩展我的Thing类,其中’Direction’
我有一个带有String属性和NS
Image属性的’Thing’对象; Thing类有encodeWithCoder:和decodeWithCoder:方法,我可以使用NSKeyedArchiver / Unarchiver归档和解压缩[Thing]数组.
到现在为止还挺好.现在我想通过一系列方向扩展我的Thing类,其中’Direction’是以下枚举: enum Direction{ case North(direction:String) case East(direction:String) case South(direction:String) case West(direction:String) } 换句话说,我希望存储的数据是 thing1.directions: Direction = [.North("thing2"),.South("thing3")] (在一个更完美的世界中,我将使用对我的东西的直接引用而不仅仅是它们的名称,但我意识到这将很容易创建引用循环 – 在创建Thing之前无法设置对另一个Thing的引用 – 所以我会克制.我正在寻找一种快速而又脏的方法来保存我的应用数据并继续前进.) 由于我将需要其他地方的指示,这是一个单独的实体,而不仅仅是Thing类中的枚举. (不确定这是否有所不同.) 使我的Direction枚举符合NSCoding的最佳方法是什么? 非常感谢. 解决方法
我所做的是给枚举一个类型并对其原始值进行编码和解码,或者实现枚举的描述并对该字符串进行编码和解码.无论哪种方式(或者如果你使用其他方式),你显然需要一种在枚举器和可存档类型之间双向转换的方法.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |