iOS-保存视图属性

时间:2011-11-29 22:42:27

标签: ios uiview sqlite

这可能看起来像一个奇怪的问题,但我想在我花几个小时试图实现它之前会问这里。 在我的应用程序中,我将视图属性(子视图的数量等)保存到sqlite3数据库。 在回读数据时,我认为“将视图存储在数据库中会不会那么容易了?”

那么,你认为使用类似blob类型的东西是可能的吗?

类似的东西:

  1. 绑定blob以插入
  2. view = sqlite3_column_blob(statement, 0);要检索
  3. 这听起来有效吗?我最关心的是知道插入和选择视图的大小。这样的事情是可能的还是没有记录,因为它太荒谬了?

    谢谢!

    然后把它拿出来

1 个答案:

答案 0 :(得分:2)

UIView符合NSCoding,这意味着您可以对其进行序列化和反序列化。这正是nib文件的工作原理。首先,请参阅Archives and Serializations Programming Guide

序列化UIView的一种简单方法是这样的:

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:view]

然后你可以用方便的方式写出data

要反序列化视图,请使用:

UIView *view = [NSKeyedUnarchiver unarchiveObjectWithData:data];

这将创建整个视图层次结构的新副本。

请注意,UIView仅序列化自己的属性。如果您继承UIView并希望序列化其他属性,则需要覆盖encodeWithCoder:initWithCoder:以添加属性。详情请见Encoding and Decoding Objects