1

質問はかなり単純です。私はSQLiteがあることを知っています。コアデータもあります。しかし、私はその間に何かが必要です。SQLite API よりもオブジェクト指向であり、Core Data よりも単純です。

主なポイントは次のとおりです。

  • 保存されたエンティティへのアクセスは、ID のみで行う必要があります。クエリは必要ありません。
  • 単一タイプのアイテムを格納する必要があるため、SQLite を選択した場合、使用できるテーブルは 1 つだけです。
  • 自動オブジェクト リレーショナル変換が必要です。または、ストレージがリレーショナルでない場合はオブジェクト ストレージ。

オブジェクトのアーカイブを使用できますが、実装する必要があります (NSArchiver)。

しかし、ある種のクラスを作成して、永続性を自動的に取得したいと考えています。Hibernate / ActiveRecord / Core Data /などで実行できるように。

ありがとう。

4

4 に答える 4

2

あなたがここで欲しいと言ったものはすべて、Core Data と完全に互換性があります。Apple は、あなたが述べたニーズを正確に満たすソリューションを提供しているのに、なぜそれを避けようとしているのですか?

于 2010-05-09T23:26:12.123 に答える
1

XML や JSON と同じようにオブジェクトをシリアライズするための非 Objective-C アプローチを検討することもできます。シリアライゼーション コードを記述する必要がない場合は、フレームワークがそれを行うため、そうしたくない場合があります。たとえば、NSDictionary別のレコードのキーを指す (ラッパー クラスなどを介して)キーと値の属性のペアにオブジェクトを配置し、 json-frameworkの呼び出しidで混乱をエンコードします。おそらく、独自の関係整合性テストを行う必要がありますが、ほら、インスタント リレーショナル データベースです。JSONRepresentation

于 2010-05-09T19:18:50.150 に答える
1

Alex が指摘するBNRPersistenceを超えて、オブジェクトの関係を維持するものを見つけることはないと思いますが、Cocoa プラットフォームの Core Data よりも単純です。FMDBのような SQLite のオブジェクト ラッパーでは、独自のコードで関係を管理する必要があります。

オブジェクト間の関係を維持することは簡単ではないタスクです。Core Data は多くの人にとって適切なものであるため、開発者の間で Apple のソリューションに代わるものを構築する動機はあまりありません。BNRPersistence は、Core Data の特定の側面に対する Aaron Hillegass の長年のフラストレーションから作成されましたが、多くの人 (私のような) は Core Data の機能に完全に満足しています。

また、一般的なタスクを簡単にするために Core Data のラッパーを提供する新しいフレームワークであるCore Resourceを確認することもできます。

于 2010-05-09T13:41:16.913 に答える
0

をご覧くださいBNRPersistence

于 2010-05-09T09:34:30.693 に答える