core-data チュートリアル
コアデータの使い方
サーチ…
備考
Core Dataは、iOSやOS Xを含むAppleのさまざまなOS SDKのフレームワークです。モデルレイヤーと永続レイヤーの2つの主要な役割があります。モデルレイヤーは、モデルオブジェクトの管理やデータの永続化に使用されます。オブジェクト指向のインターフェイスでデータを保存して管理するだけです。主な機能には、フィルタリング、クエリ、並べ替え、データの永続化、およびデータ間の関係の作成が含まれます。 Core Dataプロジェクトに関心を持つ他の主題には、NSPredicate、スレッド化などがあります。
Core Dataのアプリケーション例は、あなたのローカルライブラリ用のカタログアプリケーションでした。カタログアプリでは、図書館員が図書を追加または削除することができます。また、ジャンル別に絞り込んだり、出版日順にソートしたり、特定の著者の作品を検索することもできます。エンティティ「ブック」は、タイトル、著者、出版日、isbn、コール番号などの様々な属性を有する。上記の例を含むコアデータは、サーバから集められたデータを格納することもできる。
フレームワークの主なコンポーネントは次のとおりです。
- データモデル(エンティティ、属性、および関係)
- コアデータスタック(NSPersistentStoreCoordinator、NSManagedObjectModel、NSManagedObjectContext)
- NSFetchRequest
- NSFetchedResultsController
ソース:
CoreDataと同時実行性
CoreDataはスレッドセーフではないことを覚えておくことは重要です。つまり、たとえばManagedObjectsで作業するためにバックグラウンドスレッドなどを使用する必要がある場合は、 PrivateQueue- / MainQueue -ManagedObjectContextsのような新しい事項があります。
Applesのドキュメンタリーから: Core Dataは単一のスレッド上で実行されることを想定しています。マネージオブジェクトのコンテキストをスレッド間で共有するべきではありません。これはあなたが壊すべきではない厳しい規則です。
最初のモデルを作成する
-
.xcdatamodeld
ファイルを選択します。エンティティがないことがわかります。自分で作成する必要があります。 Xcodeの下部には、「エンティティの追加」というボタンがあります。このボタンをクリックすると、プロジェクトで作業するための新しいエンティティが作成されます。
- このステップでは、言及すべき点がいくつかあります。まず、ここでエンティティ名を変更しました。エンティティには名前
Person
が与えられています。 [属性]セクションでは、モデルに属性を追加します。このボタンは、セクションの下部にあるプラスです。あなたのアプリに関連する属性を追加することができます。たとえば、連絡先ブックアプリケーションを作成する場合、PersonのモデルにBoolean
型のArms
という属性を含める必要はありません。あなたはあなたのアプリに関連しておくべきです。たとえば、Integer型のtelephone
属性を追加するか、Stringが好きな場合などです。Booleans
からDates
などの範囲から選択できるいくつかのタイプのオプションがあります。
- モデルに満足すれば、NSManagedObjectサブクラスを作成できます。
ここでは、2つの重要なことを見ることができます。まず、Person(あなたのエンティティ名と同じ)はNSManagedObjectのサブクラスです。これは、コアデータスタックにとって重要です。第二に、次の2つのファイル、クラスを作成してい
Person.swift
との延長Person
と呼ばれるPerson+CoreDataProperites.swift
。Person.swift
ですべての追加を行う必要があります。これは、モデルを変更してクラスジェネレータを再実行すると、Person+CoreDataProperties.swift
すべてを上書きするPerson+CoreDataProperties.swift
です。
プロジェクトの作成
まず、新しいプロジェクトファイル>新規>プロジェクトを作成します。ここではSingle View Applicationが選択されていますが、プロジェクトに最適なものを選択することができます。
コアデータのセットアップの次のステップは、プロジェクトに情報を追加することです。下の写真の重要な部分は、「コアデータを使用する」を選択することです。