これが機能することを読みましたが、取得できません。コア データを事前に入力したい。プロジェクトを実行して、sqlite ファイルを作成しました。これをデスクトップにコピーし、コマンド ライン sqlite3 を使用して事前設定しました。クエリを実行して、正しく入力されていることを確認しました。だから今、私はそれを私のプロジェクトに再追加します。しかし、私が何をしても、データは取得されません。
一度だけ動作するようになりました。シミュレーターで実行した後、プロジェクトのドキュメント フォルダーから sqlite ファイルを再コピーしました。次に、この新しい sqlite ファイルにデータを入力しました。プロジェクトに戻し、コンテンツを表示しました。
問題は Z_METADATA テーブルだと思います。このテーブルには Z_UUID 属性があります。シミュレーターの UUID と sqlite の Z_UUID 属性が同じだったときだけ機能したと思います。
~/Library/Developer/Xcode/DerivedData に移動し、DerivedData フォルダーの内容を削除しました。そのため、シミュレーターを実行すると、シミュレーターの UUID が異なります。これを行ったところ、sqlite ファイルの内容が表示されなくなりました。これが、Z_METADATA テーブルが問題だと思う理由です。Z_METADATA の UUID とシミュレーターの UUID が同じではないため、何らかの理由で使用できませんか?
私が見つけたこの方法で Core Data を事前設定することに関する記事はすべて 2009 年頃の古いものなので、当時はこれが問題ではなかったと思います。それで、sqliteファイルをコピーし、コマンドラインを使用して事前に入力してから、プロジェクトに再度追加するこの方法を使用できますか? コア データを事前設定する現在の方法を誰かが持っていますか?
したがって、エラーは、 myNSFetchedResultsController
が 0 個のオブジェクトを返していることです。上記の1回ですべてのデータを返すようになりました。