変換可能な型を試し、パスを次のように保存しました。
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
。を で初期化UIBezierPath
し、からCGPathRef
を取得できます。に準拠しているため、上記のように に変換して Core Data に保存できます。CGPathRef
UIBezierPath
UIBezierPath
NSCoding
NSData