在 SWIFT (IOS) 中将 UIBezierPath 作为 Blob 存储到 SQLite
Storing UIBezierPath as Blob to SQLite in SWIFT (IOS)
我不知道从哪里开始,所以我只是要求给我一个从哪里开始的提示:-)
我喜欢将 UIBezierPath 之类的对象存储并读回 SQLite 数据库的 blob 字段中。
我已经用 Android Pathes 完成了这个,并且不得不为此编写我自己的 Serializer/Deserializer。
是否已经有任何标准方法可以做到这一点?
如果您查看 UIBezierPath
的文档,它说 class 符合 NSCoding
协议。这意味着您可以使用 NSKeyedArchiver
方法
archivedDataWithRootObject
将贝塞尔路径转换为 NSData
。将 NSData
保存到 BLoB 很容易。
然后您将使用 NSKeyedUnarchiver
方法 unarchiveObjectWithData
将数据转换回贝塞尔曲线。
如果您的贝塞尔曲线又大又复杂,您可能想找到另一种存储它们的方法。大型 BLoB 往往会降低 SQL/Core 数据数据库的速度,除非您在设计时小心谨慎。
我不知道从哪里开始,所以我只是要求给我一个从哪里开始的提示:-)
我喜欢将 UIBezierPath 之类的对象存储并读回 SQLite 数据库的 blob 字段中。 我已经用 Android Pathes 完成了这个,并且不得不为此编写我自己的 Serializer/Deserializer。
是否已经有任何标准方法可以做到这一点?
如果您查看 UIBezierPath
的文档,它说 class 符合 NSCoding
协议。这意味着您可以使用 NSKeyedArchiver
方法
archivedDataWithRootObject
将贝塞尔路径转换为 NSData
。将 NSData
保存到 BLoB 很容易。
然后您将使用 NSKeyedUnarchiver
方法 unarchiveObjectWithData
将数据转换回贝塞尔曲线。
如果您的贝塞尔曲线又大又复杂,您可能想找到另一种存储它们的方法。大型 BLoB 往往会降低 SQL/Core 数据数据库的速度,除非您在设计时小心谨慎。