タグ付けされた質問 「core-data」

Core Dataは、iOS、iPadOS、tvOS、watchOS、およびmacOS用のアップルのオブジェクトモデリングおよび永続化フレームワークです。Xcodeは、エンティティ、属性、および関係を指定するためのオブジェクトモデルエディターを提供します。

13
NSManagedObjectの特定のサブクラスが見つかりません
Core Dataを使用したアプリの開発に取り組んでいます。私が使用してインスタンスを作成したとき: let entity = NSEntityDescription.entityForName("User", inManagedObjectContext: appDelegate.managedObjectContext) let user = User(entity: entity, insertIntoManagedObjectContext: appDelegate.managedObjectContext) ログに警告が表示されました: CoreData: warning: Unable to load class named 'User' for entity 'User'. Class not found, using default NSManagedObject instead. どうすれば修正できますか? また、別の質問として、NSManagedObjectサブクラスでインスタンスメソッドを定義するにはどうすればよいですか。 編集: 次のスクリーンショットのように、エンティティのクラスを指定しました。

8
NSPredicate:NSDateプロパティの日によるオブジェクトのフィルタリング
NSDateプロパティを持つコアデータモデルがあります。データベースを日でフィルタリングしたい。ソリューションにはが含まれるNSPredicateと思いますが、すべてをまとめる方法がわかりません。 とNSDateを使用NSDateComponentsして2つのの日を比較する方法を知っていますがNSCalendar、それをどのようにフィルタリングしNSPredicateますか? おそらくNSManagedObject、年、月、日だけで最低限の日付を返すことができるカテゴリをサブクラスに作成する必要があります。次に、それをで比較できNSPredicateます。これはあなたの推薦ですか、それとももっと簡単なものがありますか?

2
executeFetchRequestの「列挙中にコレクションが変更されました」
私は何時間も問題に悩まされており、stackoverflowでこれについてのすべてを読んで(そして見つかったすべてのアドバイスを適用)、私は公式に助けを必要としています。; o) ここにコンテキストがあります: 私のiPhoneプロジェクトでは、バックグラウンドでデータをインポートし、それを管理オブジェクトコンテキストに挿入する必要があります。ここにあるアドバイスに従って、私がやっていることはここにあります: メインmocを保存する メインmocが使用する永続ストアコーディネーターを使用して、バックグラウンドmocをインスタンス化します コントローラーをバックグラウンドmocのNSManagedObjectContextDidSaveNotification通知のオブザーバーとして登録します。 バックグラウンドスレッドでインポートメソッドを呼び出す データを受信するたびに、バックグラウンドmocに挿入します すべてのデータがインポートされたら、バックグラウンドmocを保存します メインスレッドで、変更をメインmocにマージします 通知のオブザーバーとしてコントローラーを登録解除する バックグラウンドmocをリセットして解放する 時々(そしてランダムに)例外... *** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSCFSet: 0x5e0b930> was mutated while being enumerated... ...バックグラウンドmocでexecuteFetchRequestを呼び出すと、インポートされたデータがすでにデータベースに存在するかどうかを確認するためにスローされます。importメソッドの外で実行されるものは何もないので、何がセットを変更しているのでしょうか。 コントローラーとテストエンティティのコード全体(これらの2つのクラスと変更されていないアプリデリゲートで構成されるプロジェクト)を含めました。 // // RootViewController.h // FK1 // // Created by Eric on 09/08/10. // Copyright (c) 2010 …

3
特定のオブジェクトIDからコアデータオブジェクトを取得する方法
次のコードを使用して、Core DataでオブジェクトのIDを簡単に取得できます。 NSManagedObjectID *moID = [managedObject objectID]; ただし、特定のオブジェクトIDを指定して、コアデータストアからオブジェクトを取得する方法はありますか?次のように、NSFetchRequestを使用してこれを実行できることを知っています。 NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Document" inManagedObjectContext:managedObjectContext]; [fetchRequest setEntity:entity]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(objectID = %@)", myObjectID]; [fetchRequest setPredicate:predicate]; ただし、独自のフェッチ要求を開始しない方法でそれを実行したいと思います。何か案は?

3
ベストプラクティス-独自のプロジェクト/アプリのNSErrorドメインとコード
独自のフレームワークのエラードメインの設定に関する以前のSOの投稿がありますが、独自のプロジェクト/アプリのエラードメインとカスタムエラーコードの設定に関するベストプラクティスは何ですか? たとえば、多数の検証を伴うCore Data集中型のアプリで作業している場合、「既製」のCore Dataエラーコード(NSManagedObjectValidationErrorからなど)をそのままCoreDataErrors.h使用するか、独自のコードを作成してMyAppErrors.hエラーを定義する必要がありますより特異性(すなわち、MyAppValidationErrorInvalidCombinationOfLimbs? カスタムエラードメインとエラーコードのセットを作成すると、コードが明確になりますが、維持するのにオーバーヘッドが多すぎて、エラーコード番号の競合を心配する必要がありますか?または、ここに他の懸念がありますか?

2
Core Data、iCloud、CloudKitを使用した同期とバックアップ、およびそれらの連携方法
データを保存、同期、バックアップしたいアプリを作成する初期段階です。アプリはデータベースにデータだけを保存しません。iOS 8以降になる予定なので、CloudKitを使用できます。Core Data、iCloud、CloudKitがどのように連携するかについて、いくつか調査を行いましたが、まだ明確ではありません。 CloudKitは、クラウドとの間でデータを取得および取得するための単なる方法です。CloudKitはデータをiCloudと同期する別の方法ですか? 私の質問は: CloudKitを使用する場合でも、ローカルのコアデータデータベースを作成する必要がありますか? はいの場合、自動的にiCloudと同期されますか、それとも両方の場所に保存するメソッドを呼び出す必要がありますか? データがクラウドにのみ保存されている場合、iOSデバイスがインターネットに接続されていないときに、ユーザーはデータにアクセスできます。CloudKitのキャッシングは制限されていると読みました。 iCloudアカウントが有効になっていない場合、どのように機能しますか。 コアデータデータベースをオフラインおよびオンラインで保存および同期するプロセスで、各テクノロジが何を行っているかを誰かが分析できる場合。 私の現在の理解は: コアデータはデータをローカルに保存するために使用されます iCloudはデータを同期し、クラウドに保存します CloudKitは、クラウドにデータを保存および管理する機能を提供しますか? この質問が締め切られないように十分な情報を提供していただければ幸いです。

9
コアデータで列挙型を実装する最良の方法
エンティティにタイププロパティを割り当てることができるように、コアデータエンティティを列挙値にバインドする最良の方法は何ですか?言い換えれば、私はと呼ばれるエンティティ持っているItemとitemType私は列挙型にバインドしたいというプロパティを、このついて行くの最善の方法は何ですか。

2
Coredataエラー「data:<fault>」
次のコードでCoreDataからデータを引き出そうとしています NSFetchRequest *request = [[NSFetchRequest alloc] init]; request.entity = [NSEntityDescription entityForName:@"Cave" inManagedObjectContext:self.context]; request.predicate = [NSPredicate predicateWithFormat:@"(latitude &gt; 0) AND (longitude &gt; 0)"]; NSError *error; NSLog(@"%@",[self.context executeFetchRequest:request error:&amp;error]); NSLog(@"%@",[error localizedDescription]); CoreDataには9つの一致するオブジェクトがあり、9つのオブジェクトを見つけます。述語は機能するはずですが、コンソールでこれを取得します 2011-09-05 07:41:42.267 CaveConditions[6930:11903] ( "&lt;NSManagedObject: 0x7368060&gt; (entity: Cave; id: 0x7367880 &lt;x-coredata://C825FC9D-3490-4D8A-A811-979B819A2EB6/Cave/p31&gt; ; data: &lt;fault&gt;)", "&lt;NSManagedObject: 0x73547e0&gt; (entity: Cave; id: 0x7356e20 …
107 iphone  core-data 

9
タイプをNSFetchRequestインスタンスに適用する方法は?
Swift 2では、次のコードが機能していました。 let request = NSFetchRequest(entityName: String) しかし、Swift 3ではエラーが発生します。 ジェネリックパラメーター "ResultType"を推定できませんでした なぜならNSFetchRequest今はジェネリック型だからです。彼らの文書で彼らはこれを書いた: let request: NSFetchRequest&lt;Animal&gt; = Animal.fetchRequest たとえば、結果クラスがたとえば、Levelどのように正しくリクエストすればよいですか これが機能しないため: let request: NSFetchRequest&lt;Level&gt; = Level.fetchRequest
102 swift  core-data  swift3 

4
Xcode 4とコアデータ:SQLデバッグを有効にする方法
私はユニバーサルiOSアプリで作業しており、デバッグしているときにログに生のSQLを表示したいと思います。このブログの投稿には、iOSコアデータ開発で生のSQLロギングを有効にする方法に関する情報がいくつかあります。与えられた例はXcode 3のためのものであり、Xcode 4でこれを有効にする方法は私には明確ではありません。 「製品」-&gt;「スキームの編集」を試し、「- com.apple.CoreData.SQLDebug 1」を「起動時に渡される引数」に追加しましたが、ログに何も出力されません。私が間違った場所を探しているのか、単に引数を誤って渡していないのかわかりません。
102 sql  ios  core-data  xcode4 

1
iOS 5での高速で効率的なコアデータインポートの実装
質問:NSFetchedResultsControllerをトリガーしてUIを更新するように、子コンテキストに親コンテキストで永続化された変更を表示するにはどうすればよいですか? これが設定です: 大量のXMLデータ(約200万レコード、それぞれおよそテキストの通常の段落のサイズ)をダウンロードして追加するアプリがあります。.sqliteファイルのサイズは約500 MBになります。このコンテンツをCore Dataに追加するには時間がかかりますが、データが段階的にデータストアに読み込まれている間、ユーザーがアプリを使用できるようにする必要があります。大量のデータが移動されているので、ユーザーには見えないように見えないため、ハングやジッターが発生せず、バターのようにスクロールします。それでも、アプリの方が便利で、データが追加されるので、データがCore Dataストアに追加されるのをいつまでも待つことはできません。コードでは、これはインポートコードで次のようなコードを避けたいことを意味します。 [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.25]]; アプリはiOS 5のみなので、サポートする必要がある最も遅いデバイスはiPhone 3GSです。 現在のソリューションを開発するためにこれまでに使用したリソースは次のとおりです。 Appleのコアデータプログラミングガイド:データの効率的なインポート 自動解放プールを使用してメモリを維持する 関係コスト。フラットにインポートし、最後に関係をパッチアップする あなたがそれを助けることができるかどうか問い合わせないでください、それはO(n ^ 2)の方法で物事を遅くします バッチでインポート:保存、リセット、排出、繰り返し インポート時に元に戻すマネージャーをオフにする iDeveloper TV-コアデータパフォーマンス 3つのコンテキストを使用:マスター、メイン、制限コンテキストタイプ iDeveloper TV-Mac、iPhone、iPadのコアデータの更新 performBlockを使用して他のキューで保存を実行すると、処理が速くなります。 暗号化は物事を遅くし、可能であればそれをオフにします。 Marcus Zarraによるコアデータ内の大きなデータセットのインポートと表示 現在の実行ループに時間を与えることでインポートを遅くすることができるので、ユーザーはスムーズに作業できます。 サンプルコードは、大規模なインポートを実行してUIの応答性を維持できることを証明していますが、3つのコンテキストや非同期のディスクへの保存ほど高速ではありません。 私の現在の解決策 NSManagedObjectContextのインスタンスが3つあります。 masterManagedObjectContext-これはNSPersistentStoreCoordinatorを持ち、ディスクへの保存を担当するコンテキストです。これを行うのは、保存が非同期になり、したがって非常に高速になるためです。起動時に次のように作成します。 masterManagedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType]; [masterManagedObjectContext setPersistentStoreCoordinator:coordinator]; mainManagedObjectContext-これは、UIがあらゆる場所で使用するコンテキストです。これは、masterManagedObjectContextの子です。私はそれを次のように作成します: mainManagedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType]; [mainManagedObjectContext …

10
Core Dataがモデルを自動的に移行するために何をしなければなりませんか?
コアデータモデルの自動/軽量移行に関するドキュメントを読みましたが、実装に問題があります。 私が理解しているように、アプリケーションは、そのモデルとデバイス上に既に存在するモデルが同じではないことに注意する必要があります。属性または関係と同様の単純な変更のみを追加した場合、モデルは自動的にアップグレードされます。 ポインタ-Xcodeで何かを設定する必要がありますか?
96 core-data 

27
nilモデルではNSPersistentStoreCoordinatorを作成できません
Core Dataで最初の亀裂があり、デバイスでコードを実行すると次のエラーが発生しますが、シミュレータでは問題なく動作します。 *キャッチされない例外「NSInvalidArgumentException」によるアプリの終了、理由:「nilモデルでNSPersistentStoreCoordinatorを作成できません」 問題を引き起こしているかもしれない私の方法のいくつか: - (NSManagedObjectContext *)managedObjectContext { if (__managedObjectContext != nil) { return __managedObjectContext; } NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator]; if (coordinator != nil) { __managedObjectContext = [[NSManagedObjectContext alloc] init]; [__managedObjectContext setPersistentStoreCoordinator:coordinator]; } return __managedObjectContext; } /** Returns the managed object model for the application. If the model doesn't …

12
CoreData:警告:指定されたクラスをロードできません
Xcode 6.1を使用して、既存のObjective-C TV Showアプリを新しいSwiftバージョンに複製していますが、CoreDataに問題があります。 4つのエンティティのモデルを作成し、それらのNSManagedObjectサブクラスを(Swiftで)作成しました。すべてのファイルに適切なアプリターゲットセット(「ソースのコンパイル」用)があります。 新しいエンティティを挿入しようとすると、このエラーが発生します。 CoreData:警告:エンティティ 'Shows'の 'Shows'という名前のクラスをロードできません。クラスが見つかりません。代わりにデフォルトのNSManagedObjectを使用します。 いくつかのコメント: Core Dataに保存するとき、私は親子コンテキストの方法を使用してバックグラウンドスレッドを許可します。これを行うには、次を使用してManagedObjectContextを設定します。 lazy var managedObjectContext: NSManagedObjectContext? = { // Returns the managed object context for the application (which is already bound to the persistent store coordinator for the application.) This property is optional since there are legitimate error conditions that …

8
iPhoneのJSONとコアデータ
コアデータオブジェクトグラフがあります(多対多の関係でリンクされた2つのエンティティで構成されています)。 私は、比較的経験の浅いiPhone開発者として、誰かがアプローチを推奨できるかどうか、そしてiPhoneに適切なJSON実装を提供できるかどうかに興味を持っていました。 コアデータレコードをJSONストリングに変換します(エンティティ間の関係を維持します)。そして JSON文字列をコアデータオブジェクトに変換します(これもエンティティ間の関係を維持します)。 この点について、チュートリアル/コードのサンプルを検索して失敗したため、支援をいただければ幸いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.