1

问题描述:使用 NSPersistentCloudKitContainer 同步大型项目(例如图像)时,我的应用程序崩溃并出现错误“NSAllocateMemoryPages() failed”。这会在启动应用程序后的一分钟内反复发生。它发生在生产和开发环境中。

如果用户断开互联网连接或关闭我的应用程序的 iCloud 同步,则不会发生崩溃。

图像作为“二进制数据”存储在 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(第一代)上发生。

有没有其他人遇到过这个问题?所有的建议都将受到欢迎!

4

1 回答 1

0

我最后发现了问题。我正在存储大小超过 20 MB 的全分辨率图像。压缩图像使问题消失了。看起来 NSPersistentCloudKitContainer 对同步大于 15 MB 左右的 RawData 字段不满意。如果有人对此有更多详细信息,我将非常有兴趣了解有关此尺寸限制以及在哪里/是否记录在案的更多信息!

于 2020-03-05T22:11:31.887 回答