問題タブ [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 投票する
1 に答える
687 参照

ios - 既存の Core Data を iCloud に移行する

UITableView私は、ユーザーが別のビューに入力することによって入力される単純なアプリケーションを持っていUITextFieldsます。この情報は に保存されCoreDataUITableViewを使用して更新されNSFetchedResultsControllerます。

現在、私の環境に iCloud 同期を導入しています。以前に寄せられた質問:既存のコア データ データベースが iCloud にアップロードされていない場合、アプリで iCloud を有効にすると、まだ問題がありますが、新しいコードでその質問を更新するには面倒でした。私は特にWWDC 2013 CoreDataセッションとこれについて言及しています。私のアプリはiOS 7のみです。私は iCloud 開発の初心者で、中級プログラマーです。

App Store (iCloud 以外) バージョンから開発 (iCloud) バージョンにアップデートするときに、既存のデータを iCloud に移行するのが非常に困難です。新しいデータは完全に同期されます。

基本的に既存のストアを iCloud なしで取得し、それを iCloud に移行する必要があることは理解していますが、うまくいきません。

私が取り組んでいることを説明するためのコードを次に示します。

アップデート

私はこれについて調べて考え、冗長なコードを削除しました。

migrateLocalStoreToiCloud メソッドを呼び出すことはもうありませんが、参照用にここにあります。

*/

storeURL、およびコードは次storeOptionsのとおりです。iCloudURLiCloudStoreOptions

問題

このコードをそのまま実行すると、コンソールに Using が表示されず、データは存在しますが、まったく表示されませLocal Storage : 10

オプションとしてpersistentStoreCoordinator使用するpersistentStoreを最初に追加する場所を変更すると、とが表示されますが、データはデバイス上にありません。[self iCloudStoreOptions]Using Local Storage 10

私はこちらのガイダンスに従っており、 reloadStore メソッドでpersistentStoreを削除しないなど、コードの複数のバリエーションを試しましたが、完全に行き詰まりました。

私は非常に多くの投稿を読みましたが、iCloud 以外のバージョンから iCloud バージョンにデータを移行している人を見つけることができないようで、私が見つけた例ではコードがありません。

私はこれを調べましたが、これは優れたコード セットですが、コードをダウンロードし、persistentStore を削除しないというガイドラインに従いましたが、それでもうまくいきません。私が達成しようとしていることが非常に複雑であるとは想像できません。既存の iCloud 以外のデータを取得して、iCloud に移行する必要があるだけです。

アップデート

Apple のガイドを読むと: https://developer.apple.com/LIBRARY/ios/documentation/DataManagement/Conceptual/UsingCoreDataWithiCloudPG/UsingSQLiteStoragewithiCloud/UsingSQLiteStoragewithiCloud.html#//apple_ref/doc/uid/TP40013491-CH3-SW2私のmigrateLocaltoiCloud方法は現在persistentStore、などの削除で間違っていますが、修正方法がわかりません。からこれを呼び出すpersistentStoreCoordinatorと、何らかの形で に干渉しDidChangeNotificationますか?

私は本当にこれにこだわっています。正しい方向へのガイダンスをいただければ幸いです

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

ios - デフォルトデータでの出荷時に iOS データストレージガイドライン (2.23) に準拠

私はいくつかの調査を行い、基本的な問題を理解しました。ここでの私の質問は、戦略に関するものです。

背景: サッカーのコーチがラインナップを管理できるように設計されたアプリを提出しました。理由 2.23 で拒否されました。起動時に、位置とフォーメーションのデフォルトのコア データ エンティティが作成されます。また、新しいユーザーがチュートリアルとしてステップを踏むためのサンプル チームも作成します。これらのエンティティはすべて、アプリのドキュメント ディレクトリの永続ストアに保存され、iCloud に自動的にバックアップされます。彼らはそれが 4MB のデータだったと言います -- 私は 60kB しか再現できませんでした。

問題: 修正は、NSURLIsExcludedFromBackupKey. それは私に2つの選択肢を残します:

-- 簡単な選択: 最初の起動時にNSURLIsExcludedFromBackupKey、アプリのドキュメント ディレクトリを YES に設定するだけです。次に、ユーザーが独自のデータを入力したら、それを NO に設定し、 を使用しNSUserDefaultて、その後の起動時にその設定を維持します。これにより、すべてを1つの永続ストアに保持できますが、デフォルトのデータはその時点でバックアップされます...技術的にはまだルールに違反していると思います. しかし、これほど少量のデフォルトのデータで、Apple はそれに追いつくことができるでしょうか? それとも気にしますか?

-- 難しい選択: 2 つの永続ストアを使用します。1 つはバックアップから除外される既定のデータ用で、もう 1 つはユーザーが入力したデータ用です。取得したプロパティを実装して、アプリが実行するデータをマージします。おそらく「正しい」答えですが、それは苦痛のように聞こえます。これを行う方法を学び、データモデルとすべてのフェッチを作り直すことは本当に避けたいです。

それでは、もう 1 週間のレビュー時間を賭ける前に、簡単なアプローチがうまくいくかどうかについて何か考えはありますか? または他のアイデアはありますか?

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

core-data - NSPersistentStoreCoordinator の removeUbiquitousContentAndPersistentStoreAtURL メソッドが値を返さず、実行スレッドをブロックする

removeUbiquitousContentAndPersistentStoreAtURL:options:error がまったく値を返さなかった状況を経験した人はいますか? そうです。私の場合、このメソッドは実行中のスレッドをブロックするだけです。このような奇妙な動作の理由は何でしょうか?

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

ios - コア データ - データベース ストアが既に作成されているかどうかを検出します

Core Data を使用しており、データベース ストアが既に作成されているかどうかを検出する必要があります。

有効なメタデータを返すかどうかを使用metadataForPersistentStoreOfType:URL:error:して確認しようとしましたが、メタデータが存在しないだけでなくエラーが発生した場合、このメソッドは明らかに nil を返します。
そのため、ストアがまだ作成されていないためなのか、それともエラーが発生したのかはわかりません

問題は、アプリストアに既にバージョンがあるため、たとえば、現在のバージョンのユーザーデフォルトにフラグ (「store_created」など) を設定できないことです...

そのため、ユーザーがこの現在のバージョンをインストールしたときに、ストアが既に作成されている (つまり、以前のバージョンが既にインストールされている) かどうかを検出する方法が必要です。

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

ios - iOS で Sqlite ファイルを置き換える - コア データ エラー 14

データがプリロードされた Sqlite ファイルがあります。Core Data を使用して、Sqlite ファイルからデータを読み取って表示しています。

これが私がデータを読んでいる方法です:

ただし、sqliteデータエディターを使用してアプリの外部で行った新しいデータでSqliteファイルを更新する必要があります。

「myAppname.sqlite」ファイルをコピーして貼り付けてオーバーライドすると、次のエラーが発生します。

追加しようとしましNSDictionary *options = @{ NSSQLitePragmasOption : @{@"journal_mode" : @"DELETE"}たが、それでも同じエラーが存在します。

また、ファイルへの参照を削除して新しいファイルを作成することを提案する回答もありましたが、その方法がわかりません。

何か案が?

編集

私はそれを機能させることができました。

iOS 6 シミュレーターで元のアプリを開きます。

Sqlite ファイルを新しいファイルに置き換え、iOS7 シミュレーターで実行するよりもアプリのみの iOS 6 シミュレーターを実行します。問題ない。

しかし、それでも他のコメントを知りたいです。

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

ios - 移行時に「オブジェクトはnilにすることはできません」でiCloudからローカルストアがクラッシュするアプリに移行する-コアデータを使用する

ストレージに Core Data を使用する iOS 7 のみのアプリがあり、iCloud をアプリに切り替えて使用しています。

ユーザーがアプリ内からiCloudをオフにした場合のiCloudストアからローカルストアへの移行を除いて、iCloud統合のすべての側面が機能しています.

を使用するException Breakpointと、アプリが次のようにクラッシュします。

これは " migratePersistentStore" コードでクラッシュしています。

これを実行するコードは次のとおりです。

問題

上記の行で、上記のエラーでアプリがクラッシュしますmigratePersistentStore。これを機能させるために何をすべきかわかりません。

currentStore のコメントアウトされたコードは、firstObject の代わりに lastObject もチェックしようとしたことを示しており、どちらの場合も同じ結果が得られています。

ユーザーがiCloudを使用しているが使用しないことを選択した場合、データをローカルに移行する必要があることを確認したいので、ローカルからiCloudにクラッシュすることはありません。

この ( Migrate Persistant Store Crash ) スタック オーバーフローの質問は完璧に適合するようですが、まず回答が受け入れられず、質問者からコードが機能するという確認がなく、そのコードが機能しませんでした私のため; 単純にデータを削除しました。

これに関するガイダンスをいただければ幸いです。

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

ios - developer.icloud.com でアプリのすべての iCloud データを削除できなくなったのはなぜですか?

iOS 8、Yosemite Beta、Mavericks 何ヶ月もの間、定期的にアプリから iCloud データを削除してきました。使用:

これにより、developer.iCloud.com に見られるように、iCloud のデータが削除されなくなりました。

メソッドが実行されようとしているとき、私は次のことを行います。

数時間経ってもデータは消えません。

これは、developer.icloud.com のビューです。

私は何が欠けていますか?ありがとうマーク

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

ios - CoreData PersistentStorage はファイルの作成に失敗しました

iOS 8.1 で CoreData に問題があります。私のデバイスでは、すべてのシミュレーターでコードが正常に実行されている間、常にこのエラーが発生します。

すでにデバイスからアプリを削除しようとしました。テキストファイルを手動で作成しようとしましたが成功しました。エラーの原因となるコード スニペットは次のとおりです。

編集:

jrturton さん、ご回答ありがとうございます。解決策は