我尝试了可转换类型并像这样保存我的路径:
myEntityObj.mypah=(__bridge id)(anyPath);
t 但是当我打电话时CGPathRef path=[allEntities objectAtIndex:n] mypath],这条路径不正确(不要回答 CGPath 类方法等)。我能做些什么?
我尝试了可转换类型并像这样保存我的路径:
myEntityObj.mypah=(__bridge id)(anyPath);
t 但是当我打电话时CGPathRef path=[allEntities objectAtIndex:n] mypath],这条路径不正确(不要回答 CGPath 类方法等)。我能做些什么?
CGPath在这里使用起来有点困难,因为
NSData)。您需要以一种或另一种方式将CGPathRef(或其组件)转换为 Core Data 可识别的类型,例如NSData. 在自定义值转换器中执行此操作最方便(查找NSValueTransformer)。但关键是弄清楚如何转换数据。
你有几种可能性:
不要保存路径,保存用于创建路径的数据。NSValue例如,提供了一个 API 来将实例转换为/从CGPoint. 并NSValue符合NSCoding。这将允许您将单个点转换为NSData,Core Data 可以保存它。读取数据时,反转过程以重建CGPathRef.
用作UIBezierPath您的CGPathRef. 您可以使用 a 初始化 a UIBezierPath,CGPathRef并CGPathRef从 a 中获取 a UIBezierPath。UIBezierPath符合NSCoding,因此可以将其转换为NSData以保存在 Core Data 中。