UIBezierPath持久化与核心数据

Mc.*_*ver 8 core-data ios uibezierpath

我正在开发一个应用程序,用户可以用手指在屏幕上绘图.我正在使用UIBezierPath.我需要保留这个数据,这是一个包含多个BezierPath对象的NSArray.最好的方法是什么?存储在coredata中,使用NSData存储在文件中?非常感谢.

Dim*_*ima 12

您是否希望存储多个对象?您是否需要能够根据某些过滤器或订购来获取它们?我建议使用Core Data在打包/解包数据方面节省大量工作.没有理由将其存储在文件中.

编辑:

正如另一个答案所说,您只需将其存档到NSData.该UIBezierPath类坚持NSCoding协议,所以你可以做这样的事情将其存档:

NSData *bezierData = [NSKeyedArchiver archivedDataWithRootObject:bezierPath];
Run Code Online (Sandbox Code Playgroud)

您可以在Core Data中保留该NSData对象.

要解码归档,假设我们有一个bezierDataNSData对象,你可以这样做:

UIBezierPath *bezierPath = [NSKeyedUnarchiver unarchiveObjectWithData:bezierData];
Run Code Online (Sandbox Code Playgroud)