8

ユーザーが指で画面に描画できるアプリケーションに取り組んでいます。これには UIBezierPath を使用しています。複数の BezierPath オブジェクトを含む NSArray であるこのデータを保持する必要があります。これについて最善の方法は何ですか?coredata に保存し、NSData を使用してファイルに保存しますか? とても感謝しております。

4

2 に答える 2

12

複数のオブジェクトを保存する必要があると予想していますか? フィルターや順序付けに基づいてそれらを取得できるようにする必要がありますか? Core Data を使用して、データのパック/アンパックでかなりの量の作業を節約することをお勧めします。ファイルに保存する理由は特にありません。

編集:

他の回答が言ったように、それを NSData にアーカイブするだけです。UIBezierPathクラスはNSCoding プロトコルに準拠しているため、次のような方法でアーカイブできます。

NSData *bezierData = [NSKeyedArchiver archivedDataWithRootObject:bezierPath];

その NSData オブジェクトを Core Data に永続化できます。

アーカイブをデコードするには、NSData オブジェクトがあると仮定して、次のbezierDataようにします。

UIBezierPath *bezierPath = [NSKeyedUnarchiver unarchiveObjectWithData:bezierData];
于 2012-07-12T13:59:58.760 に答える
1

UIBezierPath を NSData にアーカイブし、タイプ NSData の属性として CoreData に格納します。変換可能な属性にすると、より簡単な API を使用できます。

特にアーカイブを既にサポートしているクラスの場合は、非常に簡単です。

詳細については、このドキュメントを参照してください。

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdNSAttributes.html

于 2012-07-12T18:06:07.313 に答える