1

これは奇妙に聞こえるかもしれませんが、Objective-Cコードの小さなスニペットをplistから保存して取得したいと思います。シナリオは次のとおりです。

CoreImageフィルターのプリセットを保存するplistがあります。これは、数値(ほとんどのプリセット)を持つすべてのものに対してすべてグルーヴィーです。ただし、一部のプリセットには、CIColorオブジェクトである「inputColor」のようなものが必要です(つまり、[CIColor colorWithRed:0.75 green:0.75 blue:0.75])。そのようなものをplistに(NSStringまたはNSDataとして)保存し、それを使用可能なコードとして取得する方法はありますか?

論理的な代替手段はRGB値を個別に格納することですが、他のマクロ値があるため、前者のオプションの方が少し便利です。

4

2 に答える 2

5

plistファイルを人間が編集できるようにしますか?

そうでない場合は、プロトコルにCIColor準拠していることに注意してください。したがって、それをusingNSCodingに変換し、plistに保存できます。plistを読むと、を使用して元に戻すことができます。NSDataNSKeyedArchiverNSDataNSDataCIColorNSKeyedUnarchiver

実際には、にCIFilterも準拠していNSCodingます。おそらく、フィルターオブジェクトをアーカイブおよびアーカイブ解除するだけです。属性を自動的にアーカイブおよびアーカイブ解除します。

于 2013-01-07T23:37:45.743 に答える
2

文字列として保存してから解析することができます。

しかし、なぜそうするのですか?色をNSDataオブジェクトに変換してから、plistファイルに保存します。

于 2013-01-07T23:37:58.367 に答える