5

我尝试将图片上传到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<- 作品
  • d.length: 17614327<- 不起作用
4

1 回答 1

8

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

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

您可以像这样创建 CKAsset:

var File : CKAsset = CKAsset(fileURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("image-not-available", ofType: "jpg")!))
于 2015-01-07T10:53:24.047 回答