問題タブ [nspersistentcloudkitcontainer]

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 に答える
422 参照

nspersistentcloudkitcontainer - NSPersistentCloudKitContainer で「NSAllocateMemoryPages() が失敗しました」

問題の説明: 大きなアイテム (画像など) を NSPersistentCloudKitContainer と同期すると、「NSAllocateMemoryPages() に失敗しました」というエラーでアプリがクラッシュします。これは、アプリを起動してから 1 分以内に繰り返し発生します。本番環境と開発環境の両方で発生します。

ユーザーがインターネットから切断した場合、またはアプリの iCloud 同期をオフにした場合、クラッシュは発生しません。

画像は、親エンティティとの「多対 1」の関係を持つ個別のエンティティの「バイナリ データ」として Core Data に保存されます。セットアップはこの例から適応されます: https://developer.apple.com/documentation/coredata/synchronizing_a_local_store_to_the_cloud

再現手順: 一度に複数の画像をコア データに追加するか、プライベート iCloud コンテナーに既に複数の画像がある iCloud アカウントと同期します。

プラットフォームとバージョン: iOS 13.3.1 を実行している iPhone X と iPad Pro (第 1 世代) の両方で発生します。

他の誰かがこの問題に遭遇しましたか? すべての提案は大歓迎です!

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

swift - macOS アプリで Core Data Cloudkit のクラッシュをデバッグする方法

NSPersistentCloudkitContainer - iOS 13 以降を使用して Cloudkit を使用する Core データ iOS アプリがあります。iPad と iPhone でテストしたところ、同期はうまくいきました。同じ Cloudkit コンテナー (まだ開発中) を使用して、Cloudkit を同様の Mac アプリに追加しようとしました。これも同期に関しては機能しますが、以下に示すように、iPad でエンティティを追加/削除すると、Mac でクラッシュすることがよくあります。

**libxpc.dylib`___xpc_activity_dispatch_block_invoke.109.cold.3:

-> 0x7fff70a14436 <+19>: ud2 **

コール スタックは次のように表示されます。 コール スタック

私は NSFetchedResultsControllerDelegate を使用しており、didChange 関数でいくつかのデバッグを行っています。テーブル自体に 4 行しかないのに、行 6 にオブジェクトを挿入しようとしているなど、クラッシュの前に問題が発生することがあります。私はいつもそのようなメッセージを受け取るとは限りません。

FetchedResultsControllerDelegate didChange では、スイッチの .delete 部分にデバッグを配置しました。テーブルに項目が 7 つしかないのに項目 8 を削除しようとしているようなものを見てきました。私はこれをさせませんが、欲しいアイテムを削除しないことになります。おそらく、CloudKit の変更要求が「間違った」順序で送信されているようです??

誰かがこれをデバッグする方法を提案できますか? ありがとう。