I am using the new iOS 13 NSPersistentCloudKitContainer for Syncing CoreData with iCloud.
For large size binary data i am using "Allow External Storage" in Core Data Model.
• I successfully added 200MB sized video on one device.
• It got synced to iCloud successfully.
• On the other device, when i am opening the App, it is receiving the CloudKit record, but somehow not able to work properly.
There is no programming error from my end. I have made sure that in CoreData Model "Allow External Storage" is selected.
Looks like it has something to do with how NSPersistentCloudKitContainer imports the large binary data.
Error
error: SQLCore dispatchRequest: exception handling request: <NSSQLSaveChangesRequestContext: 0x2805386c0> , *** NSAllocateMemoryPages(227428466) failed with userInfo of (null)
CoreData: error: SQLCore dispatchRequest: exception handling request: <NSSQLSaveChangesRequestContext: 0x2805386c0> , *** NSAllocateMemoryPages(227428466) failed with userInfo of (null)
2020-01-18 20:52:24.924003+0530 AppName[30450:5784098] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** NSAllocateMemoryPages(227428466) failed'
Other than this error, everything seems to work pretty well. Great job on the NSPersistentCloudKitContainer. Thanks Apple Developer Team.
Please help
Thank you so much
Maulik Sutariya
iOS Developer