如何在 CloudKit 中存储大图像?

Posted

技术标签:

【中文标题】如何在 CloudKit 中存储大图像?【英文标题】:How to store big image in CloudKit? 【发布时间】:2015-01-07 10:47:35 【问题描述】:

我尝试将图片上传到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 可以存储的最大数据大小是多少?

CloudKitCloudKit相机拍摄的大图如何存储?

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

let d = UIImagePNGRepresentation(image)
println("d.length: \(d.length)")
d.length: 55482 d.length: 17614327

【问题讨论】:

【参考方案1】:

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

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

您可以像这样创建 CKAsset:

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

【讨论】:

来自Apple:您使用资产对象保存的文件或数据不得大于 250 MB。 有什么方法可以从图片创建 URL 吗?我让用户在单击应用程序中的图像或使用 UIImagePickerController 之间进行选择。 Edwin,如果你能看看this并帮助我,请

以上是关于如何在 CloudKit 中存储大图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CloudKit 中存储和检索音频文件?

如何在 CloudKit 中存储对共享记录的引用

如何使用鼠标单击和拖动在较小的 div 中滚动大图像?

如何在 ionic.io -push 通知中设置大图像

如何将大图像添加到 UISlider 背景或放置在滚动视图中?

在行中包含大图像时,如何使 IE 11 尊重表格中的列宽?