这似乎是一个奇怪的问题,但我想在我花几个小时尝试实现它之前先在这里问一下。
在我的应用程序中,我将 View 属性( subview 数量等)保存到 sqlite3 数据库。
在读回数据时,我想“将 View 存储在数据库中不会容易得多吗?”
那么,您认为使用类似 blob 类型的东西可能吗?
类似:
- 绑定(bind) blob 以插入
view = sqlite3_column_blob(statement, 0); 检索
这听起来可行吗?我最关心的是知道插入和选择 View 的大小。这样的事情是可能的,还是因为太荒谬而没有记录在案?
谢谢!
然后拿出来
Best Answer-推荐答案 strong>
UIView 符合NSCoding ,也就是说可以序列化和反序列化。这正是 nib 文件的工作方式。首先,查看Archives and Serializations Programming Guide .
序列化 UIView 的一种简单方法如下:
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:view]
然后你可以用任何方便的方式写出data 。
要反序列化 View ,请使用:
UIView *view = [NSKeyedUnarchiver unarchiveObjectWithData:data];
这将创建整个 View 层次结构的新副本。
注意 UIView 只序列化它自己的属性。如果您将 UIView 子类化并想要序列化其他属性,则需要覆盖 encodeWithCoder: 和 initWithCoder: 以添加您的属性。这在 Encoding and Decoding Objects 中有详细说明.
关于iOS- 保存 View 属性,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/8318794/
|