【发布时间】:2020-02-16 06:24:51
【问题描述】:
具有二进制类型和启用“允许外部存储”的核心数据模型属性会导致 NSPersistentCloudKitContainer 同步机制崩溃。
这仅在接收设备上发生,这意味着上传到 CloudKit 是成功的,但是在 NSManagedContext 中从 CloudKit 下载会导致崩溃。
<NSSQLSaveChangesRequestContext: 0x281ec8420> , *** NSAllocateMemoryPages(28317598) failed with userInfo of (null)
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** NSAllocateMemoryPages(30318498) failed
这显然是内存崩溃,但我不知道如何解决它,这似乎是一个 iOS 错误。
【问题讨论】:
-
我的猜测是这不是一个错误,你只是在超载系统。阅读本文,它可能会有所帮助...blog.five.agency/…
-
...和Apple Docs 表示分配新内存块的进程失败。
-
@andrewbuilder 我知道崩溃是在内存分配期间引起的,我知道它试图专门为二进制属性分配内存(精确大小字节到字节)。我不明白它为什么这样做?我对它应该如何工作的期望:1)我创建了一个二进制属性并允许外部存储,即对于大值核心数据存储一个文件+对文件的引用 2)CloudKit 存储与 CKAsset 一样 3)在同步期间,此数据绝不会应该被提升到记忆中……
标签: core-data cloudkit ios13 nspersistentcloudkitcontainer