如何在CloudKit中存储大图像?

Ján*_*nos 5 ios cloudkit ckasset

我试图将图片上传到CloudKit并存储为NSData,但是使用相机拍摄的相对较大的图片,我收到此错误:

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
Run Code Online (Sandbox Code Playgroud)

可以存储的数据的最大大小是CloudKit多少?

如何存储用相机拍摄的大图像CloudKit

我尝试了两个图像,并绘制了它们的大小.

let d = UIImagePNGRepresentation(image)
println("d.length: \(d.length)")
Run Code Online (Sandbox Code Playgroud)
  • d.length: 55482 < - 工作
  • d.length: 17614327 < - 不起作用

Edw*_*eer 8

您应该将图片存储为CKAsset.对于CKRecord,存在尺寸限制.对于CKAsset,没有(除了CloudKit存储限制).根据文件:

将资产用于离散数据文件.如果要将图像或其他离散文件与记录关联,请使用CKAsset对象执行此操作.记录数据的总大小限制为1 MB,但资产不计入该限制.

您可以像这样创建一个CKAsset:

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

  • 从[Apple](https://developer.apple.com/library/prerelease/ios/documentation/CloudKit/Reference/CKAsset_class/index.html):*使用资产对象保存的文件或数据不得大于250 MB.* (2认同)