我尝试了可转换类型并像这样保存我的路径:
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 中。