Как сохранить большое изображение в CloudKit?

Я пытался загрузить картинку в 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 <- не работает

1 ответ

Решение

Вы должны хранить фотографии как CKAsset. Для CKRecord есть ограничение по размеру. Для CKAsset нет (кроме ограничений хранения CloudKit). Согласно документации:

Используйте активы для отдельных файлов данных. Если вы хотите связать изображения или другие дискретные файлы с записью, используйте для этого объект CKAsset. Общий размер данных записи ограничен 1 МБ, хотя активы не учитываются в этом ограничении.

Вы можете создать CKAsset следующим образом:

var File : CKAsset = CKAsset(fileURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("image-not-available", ofType: "jpg")!))
Другие вопросы по тегам