Core Data Model に NSImage を保存する正しい方法は何ですか? Entity に Attribute を追加し、それに Type "Binary" を指定すると機能すると想定しましたが、機能していません。NSImageCells の列を持つテーブルがありますが、何も表示されません。
4 に答える
10.5 以降で作業できる場合、最も簡単な方法はNSImageRep
、画像の を「Transformable」属性に保存することです。デフォルトでは、変換可能な属性は NSCoding を使用して、設定時に値をアーカイブし、アクセス時にアーカイブ解除します。これにより、カスタムのゲッター/セッターを作成する必要がなくなります。凝ったものにしたい場合はNSValueTransformer
、イメージをその表現の達成されたバージョンに変換するカスタムを作成し、get でその逆を行うことができます。10.4 を使用している場合は、カスタムの getter/setter を作成する必要があります (非標準永続属性の作成に関する Apple のドキュメントを参照してください。メッセージを送信NSImage
することで、イメージのイメージ担当者を取得できます。-representations
バインディングを介して UI に画像を表示する場合は、Cocoa バインディング プログラミング トピックの「バインディングを使用した画像の表示」セクションもお読みください。
これはあなたが尋ねた正確な質問には答えませんが、保存している画像の数によっては、画像へのパスまたは URL のみを保存し、自分の場所に保存して、必要に応じて読み込む方が効率的です。
その NSData 表現を作成する必要があります。
Non-Standard Persistent Attributesをご覧ください。特に、Transformable Attributes の下のセクションと、それで解決しない場合は Custom Code を参照してください。
これは本当に簡単な実装です