使用核心数据实现UIBezierPath持久化

8

我正在开发一个应用程序,用户可以使用手指在屏幕上绘图。我正在使用UIBezierPath来实现。我需要保存这个数据,它是一个包含多个BezierPath对象的NSArray。怎样最好地处理这个问题?存储在coredata中,使用NSData存储为文件?非常感谢。

2个回答

12

你是否希望存储多个对象?是否需要能够根据某些过滤器或排序方式获取它们?我建议使用Core Data来节省在打包/解包数据方面的很大一部分工作。没有真正的理由将它存储在文件中。

编辑:

如其他答案所述,您只需将其归档为NSData即可。 UIBezierPath类遵循NSCoding协议,因此您可以像这样对其进行归档:

NSData *bezierData = [NSKeyedArchiver archivedDataWithRootObject:bezierPath];

您可以将该NSData对象持久化到Core Data中。

要解码存档,假设我们有一个名为bezierData的NSData对象,您可以执行以下操作:

UIBezierPath *bezierPath = [NSKeyedUnarchiver unarchiveObjectWithData:bezierData];

你怎么在CoreData中持续化UIBezierPath? - Mc.Stever

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接