2015-01-07 2 views
5

Я пытался загрузить картинку на CloudKit, и сохранить его как NSData, но с относительно более широкой картиной, взятой с камерой, я получаю эту ошибку:Как сохранить большое изображение в CloudKit?

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 < - не работает

ответ

8

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

Use assets for discrete data files. When you want to associate images or other discrete files with a record, use a CKAsset object to do so. The total size of a record’s data is limited to 1 MB though assets do not count against that limit.

Вы можете создать CKAsset так:

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

С [Apple] (https://developer.apple.com/library/prerelease/ios/documentation/CloudKit /Reference/CKAsset_class/index.html): * Файлы или данные, которые вы сохраняете с использованием объекта объекта, должны быть не более 250 МБ. * – Mojo66

+0

Есть ли способ создать URL-адрес из изображения? У меня есть выбор между щелчком изображения в приложении или с помощью UIImagePickerController. – penatheboss

Смежные вопросы