4

CATransform3DをCoreDataストアに保存しようとしています。私のカスタムNSObjectサブクラスでは、次のものを使用します。

self.transform = [NSValue valueWithCATransform3D: inputTransform ];

入力CATransform3DをNSValueに変換します。NSLogは、予想される変換のように見えるものを示しています。

2012-10-02 18:12:27.019 Model Importer[27908:303] Transform: <00000000 0000f03f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000f03f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000f03f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000f03f>

私がNSValueを読んだすべてのことから、NSCodingを(NSSecureCodingを介して)実装することにより、モデルでTransformableとして指定された場合に格納可能である必要があります。ただし、ストアに書き込むと、例外が発生します。

[NSKeyedArchiver encodeValueOfObjCType:at:]:このアーカイバは構造体をエンコードできません

正常に機能しているように見えるタイプCIColorの他のTransformable属性があります。

CATransform3D属性を保存する方法は他にもたくさんあると思いますが、同様の状況に遭遇しないように、ここで機能していないものを理解したいと思います。

価値があるので、この時点でストアはデフォルトのバイナリに設定されていますが、これはストアのタイプに依存するようには見えません。

私は何かを見逃しましたか、これは既知のバグですか、それとも他の何かですか?

4

0 に答える 0