我正在编写一个美化的'paint'应用程序,用户可以在其中粘贴图像,绘制一堆UIBezier曲线,然后移动所有这些东西并旋转它们。
大多数是通过将UIImageViews和(子类)UIViews作为子视图堆叠到视图控制器的主视图中来实现的。
我希望用户能够将其创建状态保存为某种文件并与其他人共享(例如通过DropBox)。
保存本身不是问题(我知道如何保存文件!),只是将应用程序中的所有信息存入文件然后重新加载的“最佳”方式。
我猜测已经有完善的框架可以做到这一点,但奇怪的是,没有找到解决这个问题的任何东西。
所以,在我开始编写自己的自定义方法之前,我想我会问:
是否有一些推荐,批准(甚至可能是'简单';-))的方式来实现保存 - 就像写入文件一样 - 给定UIView的所有子视图的状态?
您对我“想要做什么”的建议?感谢。
答案 0 :(得分:0)
走下去:
NSKeyedArchiver.archiveRootObject(view, toFile: "/path/to/archive")
即将上映:
let view = NSKeyedUnarchiver.unarchiveObjectWithFile("/path/to/archive")
提供了一种将对象和值转换为独立于体系结构的字节流的方法。
现在我们已经完成了拼图的所有部分,让它们放在一起:
我们知道我们需要一个归档器,所以让我们搜索文档,直到找到有希望的东西:
宾果! NSKeyedArchiver
让我们使用此类将UIView序列化为archiveRootObject:toFile:
的文件。然后我们将使用unarchiveObjectWithFile:
从文件中反序列化它。
保存到文件:
NSKeyedArchiver.archiveRootObject(view, toFile: "/path/to/archive")
从文件中读取:
let view = NSKeyedUnarchiver.unarchiveObjectWithFile("/path/to/archive")