How to store big image in CloudKit?

て烟熏妆下的殇ゞ 提交于 2019-12-22 07:00:57

问题


I tried to upload a picture to CloudKit, and store it as NSData, but with a relatively bigger picture, taken with camera, I get this error:

Error saving record <CKRecordID: 0x15998770; 04359DFA-8370-4000-9F53-5694FC53FA9C:(_defaultZone:__defaultOwner__)> to server: record too large id=04359DFA-8370-4000-9F53-5694FC53FA9C of type UserSetting

What is the maximum size of data is able to store in CloudKit?

How do you store big images taken with camera in CloudKit?

I tried with two image, and I plotting out size of them.

let d = UIImagePNGRepresentation(image)
println("d.length: \(d.length)")
  • d.length: 55482 <- works
  • d.length: 17614327 <- does not work

回答1:


You should store pictures as a CKAsset. For a CKRecord there is a size limitation. For a CKAsset there is not (beside the CloudKit storage limitations). According to the documentation:

Use assets for discrete data files. When you want to associate images or other discrete files with a record, use a CKAsset object to do so. The total size of a record’s data is limited to 1 MB though assets do not count against that limit.

You can create a CKAsset like this:

var File : CKAsset = CKAsset(fileURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("image-not-available", ofType: "jpg")!))


来源:https://stackoverflow.com/questions/27817690/how-to-store-big-image-in-cloudkit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!