core-dataコアデータの使い方

備考

Core Dataは、iOSやOS Xを含むAppleのさまざまなOS SDKのフレームワークです。モデルレイヤーと永続レイヤーの2つの主要な役割があります。モデルレイヤーは、モデルオブジェクトの管理やデータの永続化に使用されます。オブジェクト指向のインターフェイスでデータを保存して管理するだけです。主な機能には、フィルタリング、クエリ、並べ替え、データの永続化、およびデータ間の関係の作成が含まれます。 Core Dataプロジェクトに関心を持つ他の主題には、NSPredicate、スレッド化などがあります。

Core Dataのアプリケーション例は、あなたのローカルライブラリ用のカタログアプリケーションでした。カタログアプリでは、図書館員が図書を追加または削除することができます。また、ジャンル別に絞り込んだり、出版日順にソートしたり、特定の著者の作品を検索することもできます。エンティティ「ブック」は、タイトル、著者、出版日、isbn、コール番号などの様々な属性を有する。上記の例を含むコアデータは、サーバから集められたデータを格納することもできる。

フレームワークの主なコンポーネントは次のとおりです。

  • データモデル(エンティティ、属性、および関係)
  • コアデータスタック(NSPersistentStoreCoordinator、NSManagedObjectModel、NSManagedObjectContext)
  • NSFetchRequest
  • NSFetchedResultsController

ソース:

フレームワークのドキュメント

プログラミングガイド

コアデータリリースノート2016

CoreDataと同時実行性

CoreDataはスレッドセーフではないことを覚えておくことは重要です。つまり、たとえばManagedObjectsで作業するためにバックグラウンドスレッドなどを使用する必要がある場合は、 PrivateQueue- / MainQueue -ManagedObjectContextsのような新しい事項があります。

Applesのドキュメンタリーから: Core Dataは単一のスレッド上で実行されることを想定しています。マネージオブジェクトのコンテキストをスレッド間で共有するべきではありません。これはあなたが壊すべきではない厳しい規則です。

最初のモデルを作成する

  • .xcdatamodeldファイルを選択します。エンティティがないことがわかります。自分で作成する必要があります。 Xcodeの下部には、「エンティティの追加」というボタンがあります。このボタンをクリックすると、プロジェクトで作業するための新しいエンティティが作成されます。

データ・モデル

  • このステップでは、言及すべき点がいくつかあります。まず、ここでエンティティ名を変更しました。エンティティには名前Personが与えられています。 [属性]セクションでは、モデルに属性を追加します。このボタンは、セクションの下部にあるプラスです。あなたのアプリに関連する属性を追加することができます。たとえば、連絡先ブックアプリケーションを作成する場合、PersonのモデルにBoolean型のArmsという属性を含める必要はありません。あなたはあなたのアプリに関連しておくべきです。たとえば、Integer型のtelephone属性を追加するか、Stringが好きな場合などです。 BooleansからDatesなどの範囲から選択できるいくつかのタイプのオプションがあります。

モデルを作成する

  • モデルに満足すれば、NSManagedObjectサブクラスを作成できます。

NSManagedObjectSubclassを作成する

データモデルの選択

管理するエンティティの選択

  • ここでは、2つの重要なことを見ることができます。まず、Person(あなたのエンティティ名と同じ)はNSManagedObjectのサブクラスです。これは、コアデータスタックにとって重要です。第二に、次の2つのファイル、クラスを作成していPerson.swiftとの延長Personと呼ばれるPerson+CoreDataProperites.swift

  • Person.swiftですべての追加を行う必要があります。これは、モデルを変更してクラスジェネレータを再実行すると、 Person+CoreDataProperties.swiftすべてを上書きするPerson+CoreDataProperties.swiftです。

Person.swift

Person + CoreDataProperites.swift

プロジェクトの作成

まず、新しいプロジェクトファイル>新規>プロジェクトを作成します。ここではSingle View Applicationが選択されていますが、プロジェクトに最適なものを選択することができます。

初期設定

コアデータのセットアップの次のステップは、プロジェクトに情報を追加することです。下の写真の重要な部分は、「コアデータを使用する」を選択することです。

プロジェクト情報の追加