15

XCode でプロジェクトを作成するためのオプションが多すぎます。

ただし、ナビゲーションベースのアプリケーション/ウィンドウベースのアプリケーションを選択すると

追加のオプションが表示されます - Use Core Data For Storage.

それについての簡単な詳細が必要です。

何が新しいのですか?

4

2 に答える 2

35

ジャーガソンが書いたことを詳しく説明します。Core Data は、Java の世界の Hibernate に似たオブジェクト リレーショナル マッピング (ORM) です。コードからデータ (SQL や .plist ファイルなど) を格納する実際の仕組みを抽象化します。コードは、オブジェクトを取得し、更新し、永続化するために、一貫したオブジェクト指向フレームワークを処理するだけで済みます。Core Data は、ある程度の ACID トランザクションをサポートしていますが、2 フェーズ コミットはサポートしていません。iPhone では、Core Data のデフォルト設定は、sqlite データベースを ORM レイヤーでラップします。

Core Data を使用することの興味深い副次的な利点の 1 つは、データ モデルを視覚的に設計し、モデル クラスを生成するためのツールです。大規模なモデルがある場合、これにより、モデル クラスを手作業でコーディングする時間を大幅に節約できます。

Core Data のもう 1 つの興味深い利点は、データベースをあるモデル バージョンから別のモデル バージョンに移行できることです。これは iPhone の世界では非常に重要です。なぜなら、アプリのあるバージョンから次のバージョンにデータ モデルを変更したい場合があるからです。Core Data は、大量の移行コードを記述することなく、保持されたデータを古いモデルから新しいモデルに移行するための非常に簡単な方法を提供します。移行マップを定義し、「数」行のコードをアプリ デリゲートに追加するだけで、変換が行われます。

iPhone の Core Data は、モバイル環境向けに設計されています。テーブル内のすべての行を配列にフェッチしても、実際にはすべてがメモリに取り込まれるわけではありません。これは、NSArray のように見える単なるオブジェクトである、Apple がフォルト配列と呼んでいるものを作成します。配列 Core Data のさまざまな要素にアクセスすると、クエリではなく、使用時にそれらのエンティティ (行) がフェッチされます。メモリを節約し、アプリの実行を高速化します。

全体として、Hibernate ほどリッチではありませんが、この環境には十分な機能を備えた ORM レイヤーです。

于 2009-08-27T23:07:50.107 に答える
17

Core Data は基本的に、モデルを視覚的に構築する方法であり、モデルの一種の Interface Builder です。モデル クラスを表すエンティティを作成し、それらの間の関係を定義します。住所クラスのインスタンスを持つ Person クラスをコーディングする代わりに、ドラッグ アンド ドロップで視覚的に作成できます。それ以外にもたくさんありますが、それが私がクールだと思う主な機能です.

こちらの Apple のドキュメントも参照 してください。

于 2009-08-27T22:40:14.047 に答える