我正在iOS上制作绘图应用程序,并希望将用户绘图保存到核心数据中。
我知道NSData是CoreData的属性类型,因此我考虑使用它。
我的想法是将CGPath数组转换为NSData,然后将NSData保存到Core Data。有谁了解我将如何做或有更好的解决方案?
答案 0 :(得分:1)
如果将CGPath
转换为UIBezierPath
,则支持NSCoding
/ NSSecureCoding
:
do {
let path = UIBezierPath(cgPath: cgPath)
let data = try NSKeyedArchiver.archivedData(withRootObject: path, requiringSecureCoding: false)
} catch {
print(error)
}
您还可以将Data
转换回UIBezierPath
:
do {
if let path = try NSKeyedUnarchiver.unarchivedObject(ofClass: UIBezierPath.self, from: data) {
let cgPath = path.cgPath
}
} catch {
print(error)
}