问题
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
<- worksd.length: 17614327
<- does not work
回答1:
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")!))
来源:https://stackoverflow.com/questions/27817690/how-to-store-big-image-in-cloudkit