Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to store big image in CloudKit?

I tried to upload a picture to CloudKit, and store it as NSData, but with a relatively bigger picture, taken with camera, I get this error:

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

What is the maximum size of data is able to store in CloudKit?

How do you store big images taken with camera in CloudKit?

I tried with two image, and I plotting out size of them.

let d = UIImagePNGRepresentation(image)
println("d.length: \(d.length)")
  • d.length: 55482 <- works
  • d.length: 17614327 <- does not work
like image 994
János Avatar asked Jan 07 '15 10:01

János


1 Answers

You should store pictures as a CKAsset. For a CKRecord there is a size limitation. For a CKAsset there is not (beside the CloudKit storage limitations). According to the documentation:

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.

You can create a CKAsset like this:

var File : CKAsset = CKAsset(fileURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("image-not-available", ofType: "jpg")!))
like image 82
Edwin Vermeer Avatar answered Sep 21 '22 05:09

Edwin Vermeer