我尝试了可转换类型并保存我的路径:
myEntityObj.mypah=(__bridge id)(anyPath);
吨
但是当我调用CGPathRef path=[allEntities objectAtIndex:n] mypath]
时,这条路径是不正确的(不要回答CGPath类方法等)。
我该怎么办?
答案 0 :(得分:5)
CGPath
在这里使用起来有点难,因为
NSData
)。您需要将CGPathRef
(或其组件)转换为Core Data识别的类型(如NSData
)。在自定义值转换器中执行此操作最为方便(查找NSValueTransformer
)。但关键是要弄清楚如何转换数据。
您有几种可能性:
不保存路径,保存用于创建路径的数据。例如,NSValue
提供了一个API,用于将实例转换为CGPoint
或从NSValue
转换实例。 NSCoding
符合NSData
。这将允许您将单个点转换为CGPathRef
,Core Data可以保存它。在读取数据时,请反转该过程以重建UIBezierPath
。
使用CGPathRef
作为UIBezierPath
的便利容器。您可以使用CGPathRef
初始化CGPathRef
,并从UIBezierPath
返回UIBezierPath
。 NSCoding
符合NSData
,如上所述,它可以转换为{{1}}以保存在核心数据中。