如何在CloudKit中存储大图像?

时间:2015-01-07 10:47:35

标签: 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

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

如何在CloudKit中存储使用相机拍摄的大图像?

我尝试了两张图片,并绘制了它们的大小。

let d = UIImagePNGRepresentation(image)
println("d.length: \(d.length)")
  • d.length: 55482&lt; - works
  • d.length: 17614327&lt; - 无效

1 个答案:

答案 0 :(得分:8)

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

  

将资产用于离散数据文件。当您想要关联图像时   或其他具有记录的离散文件,使用CKAsset对象来执行此操作。   记录数据的总大小限制为1 MB,尽管资产确实如此   不计入这个限制。

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

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