問題タブ [nspersistentstore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
137 参照

objective-c - 永続ストアのロード エラーに対処するための戦略

永続ストアをロードする際のエラーを処理するための Apple サンプル コードのデフォルトの戦略は、エラーをログに記録して保釈することです。よりユーザーフレンドリーなことを実際に行うべきであるという説明が常に(コメントに)あります。

永続ストアのロードの失敗に対処するためのより良い方法のサンプル コードはありますか? エラーをログに記録するよりも優れた戦略について提案がある人はいますか?

古いストアをアーカイブしてから、ユーザーに新しいストアを返す方がよいでしょうか (何が起こったかを伝えるメッセージを添えて)

0 投票する
1 に答える
492 参照

ios - コア データが iOS 4.3 で機能しない

コア データに問題があります。iOS 5.0 以降では問題なく動作していますが、iOS 4.3 で実行するとクラッシュし__managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];ます。

0 投票する
1 に答える
126 参照

objective-c - CoreData 永続ストアのエラー

私は CoreData ベースのアプリケーションを使用しており、アプリケーションの起動時に本質的に記述された AppDelegate クラスを持っています。

ボタンをクリックすると、ArrayController(Section1) をサブクラスに渡し、それを解析して TableView セルの値を格納します。

最初は問題なく動作していましたが、今では次のエラーが表示されます。

永続ストアを開くために使用された管理対象オブジェクト モデルのバージョンは、永続ストアの作成に使用されたバージョンと互換性がありません。

以前にこのエラーに遭遇した人はいますか? 助言がありますか?ありがとう。

0 投票する
1 に答える
649 参照

ios - UIManagedDocument で真っ黒になるコア データ データベースを事前にロードする

専門家の皆様、こんにちは... 私は初めての iPad アプリを作成しておりUIManagedDocument、アプリの起動時に XML ファイルを解析して Core Data DB を作成するベータ版を作成しています。ただし、これには時間がかかるため、一度オフラインにして、初期データをアプリ バンドルに直接含めたいと考えています。言うまでもなく、私はそれを機能させようとして壁にぶつかっています。

私は最初にコマンド ライン ユーティリティ アプローチに従いました。ここを参照してください。これは、.sqlite ファイルをインポートしてメソッドを編集しようとするまで機能しpersistentStoreCoordinatorました。モデルをロードするためのコードを記述する必要はありません。Mac OS X でドキュメント ベースのアプリケーションを使用している場合、アプリケーションのモデルを検索してロードするタスクを が管理します。"UIManagedDocumentpersistenStoreCoordinatorAppDelegateNSPersistentDocument

次に、この StackOverFlow の質問UIManagedDocumentに従って、シミュレーターでアプリの動作中のバージョンからをコピーしようとしまし た。これはまさにここで尋ねられた問題ですが、その質問に対する回答は、私が持っていないメソッドの修正にすぐに戻ります。persistentStoreNSPersistentStoreCoordinator

NSFetchRequestアプリバンドルからドキュメントディレクトリにコピーしたコードにテストを追加したので、アプリバンドルが空でUIManagedDocumentあることがわかりました。UIManagedDocumentファインダーからドラッグ アンド ドロップし、ターミナルを使用して対処しようとしました。persistentStore ファイルは正しく移動され、サイズは 106 KB ですが、アプリに空の DB が表示されます。

これを機能させる方法について何か提案はありますか?

configurePersistenStoreCoordinatorForURL:ofType:modleConfiguration:StoreOptions:error:クラス リファレンスに従って使用する必要がありUIManagedDocumentますか?

メソッドを変更できるように、一部のコア データ メソッドを AppDelegate に追加する必要がありpersistenStoreCoordinatorますか? その場合、このメソッドは他に何をする必要がありますか?

コマンドラインユーティリティが作成した、または使用しているように見える.sqlite DBを使用する方が良いpersistentStore UIManagedDocumentですか?

0 投票する
1 に答える
132 参照

objective-c - 自己モデルで別の sqlite ファイルを作成する方法

複数のsqlite ファイルなどを含むこの投稿 Core Data を読みました。

ただし、分離されたsqliteファイルの作成に関するわかりやすい情報は見つかりません(たとえば、さまざまなユーザーのデータを保存するため)。それは私がやっていることです:

ユーザーを変更すると、ユーザーも変更されますが、そうではNSPersistentStoreCoordinatorありNSManagedObjectContextませNSManagedObjectModelん (ありますNSFetchRequest)。それでは、追加のエンティティ(ユーザーなど)を作成せずに、別のユーザーのコアデータ(セルフデータと「フェッチリクエスト」を含む)を分離する方法は?

0 投票する
1 に答える
119 参照

ios - 常設ストアコーディネーターの使用?

主にテーブル ビュー コントローラー/テーブル ビューに基づく iPad アプリを作成しました。外部サーバーの .csv ファイルからコンテンツを取得しています。デバイスにコンテンツを保存する必要があります。だから私はこれを達成するためにコアデータを使用しています。管理オブジェクトと管理オブジェクト コンテキストを使用してこれを行うことができました。ユーザーが新しいセルに対して入力を提供すると、それを管理対象オブジェクトに保存します。

しかし、これをすべて行った後は、Persistent Store Co-ordinator を使用する必要はありませんでした。持っているべきかもしれませんが、それらを使用する方法や理由がわかりません。

これに関する少しの啓発は素晴らしいでしょう!

編集:私の質問は、コアデータに永続的なストアコーディネーターが必要ですか? それらは何に使用されますか?

ありがとう!

0 投票する
1 に答える
473 参照

core-data - 新しいプロジェクト新しいモデルNSPersistentDocumentこのNSPersistentStoreCoordinatorには永続ストアがありません

私は何時間もstackoverflowとGooglingを検索してきました。CoreDataとバインディングをいじくり回す簡単なプロジェクトを作成しました。モデルにエンティティが追加され、機能しなくなりました。新しいドキュメントにデータを追加しようとすると、「このNSPersistentStoreCoordinatorには永続ストアがありません。保存操作を実行できません」というメッセージが表示されていました。私は運が悪かったので見つけたすべてのアドバイスに従いました。

最後に、新しいプロジェクト(NSPersistentDocumentベース)を作成し、新しいモデルを最初から作成しました。プロジェクトを初めて実行する前に、モデルが完璧であることを確認しました。

WindowControllerDidLoadNibの場合:プロジェクトは、データを追加するためのメソッドを呼び出します。addDataルーチンの前に、ManagedObjectContextとManagedObjectModelをログに記録します。どちらもゼロではありません。

私はまだこの%$&#@を取得しています!エラー。

誰かがこれについて何か新しいアイデアを持っていますか?

編集:これは、新しい無題のドキュメントが保存されたことがないためでしょうか?もしそうなら、どのようにそれを回避しますか?無題のドキュメントを保存できますか?本当にしたいですか?

しばらく前にファイルのインポートで同様の問題が発生しました。私は完全に制御できるので、ドキュメントに名前を付けて保存し、コンテキストを保存することができました。

0 投票する
3 に答える
510 参照

ios - Keeping Core Data Objects in multiple stores

I'm developing an iOS application using Core Data. I want to have the persistent store located in a shared location, such as a network drive, so that multiple users can work on the data (at different times i.e. concurrency is not part of the question).

But I also want to offer the ability to work on the data "offline", i.e. by keeping a local persistent store on the iPad. So far, I read that I could do this to some degree by using the persistent store coordinator's migration function, but this seems to imply the old store is then invalidated. Furthermore, I don't necessarily want to move the complete store "offline", but just a part of it: going with the simple "company department" example that Apple offers, I want users to be able to check out one department, along with all the employees associated with that department (and all the attributes associated with each employee). Then, the users can work on the department data locally on their iPad and, some time later, synchronize those changes back to the server's persistent store.

So, what I need is to copy a core data object from one store to another, along with all objects referenced through relationships. And this copy process needs to also ensure that if an object already exists in the target persistent store, that it's overwritten rather than a new object added to the store (I am already giving each object a UID for another reason, so I might be able to re-use the UID).

From all I've seen so far, it looks like there is no simple way to synchronize or copy Core Data persistent stores, is that a fair assessment?

So would I really need to write a piece of code that does the following:

  • retrieve object "A" through a MOC
  • retrieve all objects, across all entities, that have a relationship to object "A"
  • instantiate a new MOC for the target persistent store
  • for each object retrieved, check the target store if the object exists
  • if the object exists, overwrite it with the attributes from the object retrieved in steps 1 & 2
  • if the object doesn't exist, create it and set all attributes as per object retrieved in steps 1 & 2

While it's not the most complicated thing in the world to do, I would've still thought that this requirement for "online / offline editing" is common enough for some standard functionality be available for synchronizing parts of persistent stores?

Your point of views greatly appreciated, thanks, da_h-man

0 投票する
2 に答える
659 参照

core-data - Core Data 永続ストア (SQLite) を NORMAL ロック モードとして設定する

「サーバー」マシン(同じLAN)でAFPを介して永続ストアがSQLiteを使用するアプリのプロトタイプを構築しています。ただし、アプリの 2 つの異なるインスタンスからストアに接続できません。

次のように、永続ストア コーディネーターに SQLite プラグマ設定 (ロックに関連) を設定します。

2 番目のクライアントからストアに接続しようとしたときに表示されるエラー メッセージ (つまり、1 番目のクライアントが既に正常に接続されている場合) は次のとおりです。

エラー: sqlite データベースはロックされています。これは、.../TestDBApp.storedata でホスト排他ロックを保持している別のホストによって使用されているためです。このホスト UID... は、他のホスト UID... が .../.TestDBApp.storedata-conch のロックを解除するまで、ホスト排他ロックをオーバーライドできません

私は何か間違ったことをしていますか?

Core Data と SQLite を使用して、2 つのクライアントから同じストアにアクセスできますか?

これは Core Data や SQLite API のバグですか?

0 投票する
2 に答える
88 参照

core-data - クエリがどの永続ストアから来るかを知る

私がやろうとしていることが Core Data ではできない可能性があるので、もしそうなら教えてください。

私は ManagedObjectContext を持っており、 addPersistentStoreWithType を介してそれらを追加することにより、sqlite データベースを導入しています。. .

したがって、いくつかのデータベースを追加します。たとえば、1 ~ 5 としましょう。その後、データベース内のデータに対してフェッチを実行します。検索しているソースを言う必要がないのは素晴らしいことです。結果が戻ってきて、それらがマージされるだけです。

ただし、各結果がどのストアから出てきたのか知りたい場合はどうすればよいでしょうか? それは可能ですか?結果が見つかった「ファイル」を知りたいのと同じように、私はあまりにも「古い学校」だと考えていますか?

ヘルプ/アドバイスをいただければ幸いです。

ここにいくつかのコードがあります:

上記を参照してください。XCode で作成した Core Data NSManagedObjectModel である PMBEntity があります。おわかりのように、(多くの) フィールドの 1 つが「名前」です。ここでは、すべての一意の名前を検索し、名前で並べ替えています。

私に返されるのは、これらの PMBEntity オブジェクトの NSArray です。