2015-01-07 15 views
5

Tôi cố gắng để tải lên một hình ảnh để CloudKit, và lưu nó như NSData, nhưng với một bức tranh tương đối lớn, được chụp bằng máy ảnh, tôi nhận được lỗi này:Làm thế nào để lưu trữ hình ảnh lớn trong 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 

là gì kích thước tối đa của dữ liệu có khả năng lưu trữ trong CloudKit?

Làm cách nào để lưu trữ những hình ảnh lớn được chụp bằng máy ảnh trong CloudKit?

Tôi đã thử với hai hình ảnh và tôi vẽ kích thước của chúng.

let d = UIImagePNGRepresentation(image) 
println("d.length: \(d.length)") 
  • d.length: 55482 < - công trình
  • d.length: 17614327 < - không hoạt động

Trả lời

8

Bạn nên lưu trữ hình ảnh như một CKAsset. Đối với một CKRecord có một giới hạn kích thước. Đối với một CKAsset không có (bên cạnh các giới hạn lưu trữ CloudKit). Theo tài liệu:

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.

Bạn có thể tạo một CKAsset như thế này:

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

Từ [Apple] (https://developer.apple.com/library/prerelease/ios/documentation/CloudKit /Reference/CKAsset_class/index.html): * Các tệp hoặc dữ liệu bạn lưu bằng cách sử dụng đối tượng nội dung không được lớn hơn 250 MB. * – Mojo66

+0

Có cách nào để tạo URL từ hình ảnh không? Tôi có người dùng chọn giữa việc nhấp vào hình ảnh trong ứng dụng hoặc sử dụng UIImagePickerController. – penatheboss

Các vấn đề liên quan