CoreData
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*目次 [#e86b220c]
#contents
*プロジェクトの作成 [#z2dcfcca]
-プロジェクトの新規作成で、Empty Projectを選ばないとだめ。
-既存プロジェクトに追加する方法に関しては以下を参照のこと。
--[[Adding Core Data Existing iPhone Projects « Wire...
--[[iphone - Adding Core Data to existing project in XCod...
*構成要素 [#d1072375]
**Persistent store [#vbafd56c]
-バックエンド。SQLite3とか。
**Data model [#vbbe47c1]
-テーブルスキーマ。
-Xcodeのデータモデルエディタで作る。.xcdatamodeldに保存さ...
-Object-CのクラスとしてはNSManagedObjectModelに対応。
#pre{{
- (NSManagedObjectModel *)managedObjectModel {
if (managedObjectModel_ != nil) {
return managedObjectModel_;
}
NSString *modelPath = [[NSBundle mainBundle] pathForR...
NSURL *modelURL = [NSURL fileURLWithPath:modelPath];
managedObjectModel_ = [[NSManagedObjectModel alloc] i...
return managedObjectModel_;
}
}}
**Persistent store coordinator[#sebef938]
-Persistent storeとData modelを使ってManaged objectとを作...
#pre{{
- (NSPersistentStoreCoordinator *)persistentStoreCoordina...
if (persistentStoreCoordinator_ != nil) {
return persistentStoreCoordinator_;
}
NSURL *storeURL = [NSURL fileURLWithPath: [[self appl...
NSError *error = nil;
persistentStoreCoordinator_ = [[NSPersistentStoreCoor...
if (![persistentStoreCoordinator_ addPersistentStoreW...
NSLog(@"Unresolved error %@, %@", error, [error u...
abort();
}
return persistentStoreCoordinator_;
}
}}
-Managed object contextで管理される。
**Managed object and managed object context[#fbd24cdf]
-Managed ObjectsはDTO(みたいなもんか)。
-Key-Value Coding対応。
NSDate* t = [managedObject valueForKey:@"updateDate"]
-Managed Object ContextはManaged Objectsを管理する。Persi...
**Fetch requerst [#xd1bab7c]
-条件を駆使してオブジェクトを取り出す。
*データモデルエディタ [#h63a8f51]
**起動方法 [#y43d24aa]
.xcdatamodelをクリックすると起動する。
**エンティティ [#s15a1061]
-テーブルに該当。
-左上のペインで追加削除できる。
**プロパティ [#d76f1b07]
-テーブルのカラムに該当。
-選択されたテーブルのカラムが一覧表示される。
**属性 [#db5d984a]
-カラムの型に該当。
-選択されたカラムの属性が表示される。
*Fetch Results Controller [#wd025de2]
-NManagedObjectsを管理されているオブジェクトを表示したり...
-イベントが発生するとdelegateメソッドが呼び出されるのでそ...
*関連 [#pfc3c107]
-To-Manyの場合もTo-Oneの場合も逆関連を設定しておいたほう...
-どちらか一方で関連づけるともう一方の関連も動的にメンテナ...
-あるオブジェクトに関連づけられた子オブジェクトの集合から...
-例えば本棚に多数の本が関連づけられているとして、以下のよ...
#pre{{
let fetchRequest = NSFetchRequest()
let entity = NSEntityDescription.entityForName("B...
fetchRequest.entity = entity
let pred = NSPredicate(format: "shelf=%@", argume...
fetchRequest.predicate = pred
}}
*Tips [#k8ff30ec]
**transientプロパティの使いどころって? [#i332cdfd]
-NSManagedObjectObjectを継承したモデルクラスで一時的なプ...
**新規オブジェクトのキャンセル処理 [#z820f6af]
-保存ボタンを押した際に、insertNewObjectForEntityForName...
--[[iphone - Cancel New CoreData Object? - Stack Overflow...
--NSManagedObjectが直前まで作られない方法。しかしNSManage...
-rollback()を使う。
-キャンセル時にdeleteObjectする。[[ちょっとだけ本格的なiP...
-CoreDataBooks。[[CoreDataBooks:https://developer.apple.c...
#pre{{
NSManagedObjectContext *addingContext = [[NSManagedObject...
[addingContext setParentContext:[self.fetchedResu...
}}
**初期データの投入 [#d2ae8e56]
-[[ios - What is the best way fill in database core data ...
-例えばNSUserDefaultsなどに初回起動かどうかを覚えさせてお...
*トラブルシューティング [#se92d421]
**Xcode 8 + Swift 3での不具合 [#e9d6880e]
-モデルクラスの生成はxcdatamodeldを選択して、Editor > Cre...
-モデル名+CoreDataClass.swiftに不完全なimport文が追加され...
終了行:
*目次 [#e86b220c]
#contents
*プロジェクトの作成 [#z2dcfcca]
-プロジェクトの新規作成で、Empty Projectを選ばないとだめ。
-既存プロジェクトに追加する方法に関しては以下を参照のこと。
--[[Adding Core Data Existing iPhone Projects « Wire...
--[[iphone - Adding Core Data to existing project in XCod...
*構成要素 [#d1072375]
**Persistent store [#vbafd56c]
-バックエンド。SQLite3とか。
**Data model [#vbbe47c1]
-テーブルスキーマ。
-Xcodeのデータモデルエディタで作る。.xcdatamodeldに保存さ...
-Object-CのクラスとしてはNSManagedObjectModelに対応。
#pre{{
- (NSManagedObjectModel *)managedObjectModel {
if (managedObjectModel_ != nil) {
return managedObjectModel_;
}
NSString *modelPath = [[NSBundle mainBundle] pathForR...
NSURL *modelURL = [NSURL fileURLWithPath:modelPath];
managedObjectModel_ = [[NSManagedObjectModel alloc] i...
return managedObjectModel_;
}
}}
**Persistent store coordinator[#sebef938]
-Persistent storeとData modelを使ってManaged objectとを作...
#pre{{
- (NSPersistentStoreCoordinator *)persistentStoreCoordina...
if (persistentStoreCoordinator_ != nil) {
return persistentStoreCoordinator_;
}
NSURL *storeURL = [NSURL fileURLWithPath: [[self appl...
NSError *error = nil;
persistentStoreCoordinator_ = [[NSPersistentStoreCoor...
if (![persistentStoreCoordinator_ addPersistentStoreW...
NSLog(@"Unresolved error %@, %@", error, [error u...
abort();
}
return persistentStoreCoordinator_;
}
}}
-Managed object contextで管理される。
**Managed object and managed object context[#fbd24cdf]
-Managed ObjectsはDTO(みたいなもんか)。
-Key-Value Coding対応。
NSDate* t = [managedObject valueForKey:@"updateDate"]
-Managed Object ContextはManaged Objectsを管理する。Persi...
**Fetch requerst [#xd1bab7c]
-条件を駆使してオブジェクトを取り出す。
*データモデルエディタ [#h63a8f51]
**起動方法 [#y43d24aa]
.xcdatamodelをクリックすると起動する。
**エンティティ [#s15a1061]
-テーブルに該当。
-左上のペインで追加削除できる。
**プロパティ [#d76f1b07]
-テーブルのカラムに該当。
-選択されたテーブルのカラムが一覧表示される。
**属性 [#db5d984a]
-カラムの型に該当。
-選択されたカラムの属性が表示される。
*Fetch Results Controller [#wd025de2]
-NManagedObjectsを管理されているオブジェクトを表示したり...
-イベントが発生するとdelegateメソッドが呼び出されるのでそ...
*関連 [#pfc3c107]
-To-Manyの場合もTo-Oneの場合も逆関連を設定しておいたほう...
-どちらか一方で関連づけるともう一方の関連も動的にメンテナ...
-あるオブジェクトに関連づけられた子オブジェクトの集合から...
-例えば本棚に多数の本が関連づけられているとして、以下のよ...
#pre{{
let fetchRequest = NSFetchRequest()
let entity = NSEntityDescription.entityForName("B...
fetchRequest.entity = entity
let pred = NSPredicate(format: "shelf=%@", argume...
fetchRequest.predicate = pred
}}
*Tips [#k8ff30ec]
**transientプロパティの使いどころって? [#i332cdfd]
-NSManagedObjectObjectを継承したモデルクラスで一時的なプ...
**新規オブジェクトのキャンセル処理 [#z820f6af]
-保存ボタンを押した際に、insertNewObjectForEntityForName...
--[[iphone - Cancel New CoreData Object? - Stack Overflow...
--NSManagedObjectが直前まで作られない方法。しかしNSManage...
-rollback()を使う。
-キャンセル時にdeleteObjectする。[[ちょっとだけ本格的なiP...
-CoreDataBooks。[[CoreDataBooks:https://developer.apple.c...
#pre{{
NSManagedObjectContext *addingContext = [[NSManagedObject...
[addingContext setParentContext:[self.fetchedResu...
}}
**初期データの投入 [#d2ae8e56]
-[[ios - What is the best way fill in database core data ...
-例えばNSUserDefaultsなどに初回起動かどうかを覚えさせてお...
*トラブルシューティング [#se92d421]
**Xcode 8 + Swift 3での不具合 [#e9d6880e]
-モデルクラスの生成はxcdatamodeldを選択して、Editor > Cre...
-モデル名+CoreDataClass.swiftに不完全なimport文が追加され...
ページ名: