2016-01-13 16 views
10

Tôi đang cố gắng lưu trữ các nhóm liên hệ trong CloudKit và tôi gặp phải lỗi khi cố gắng tạo một nhóm lớn các bản ghi, CKReferenced vào một bản ghi nhóm duy nhất.Có giới hạn về số lượng bản ghi CKReferenced trong CloudKit không?

Giới hạn có vẻ là khoảng 700 hồ sơ.

Có ai khác nhìn thấy kết quả tương tự hoặc có thể xác nhận sự tồn tại (hoặc không tồn tại) của giới hạn không? Tôi không thể tìm thấy bất kỳ thứ gì trong tài liệu hoặc thông qua Google.

LƯU Ý: Tôi đã chia nhỏ các bản ghi mà tôi gửi thành các lô 400 hoặc ít hơn, vì điều đó có vẻ là một giới hạn khó.

+0

bạn gặp phải lỗi gì? Đây có phải là CKErrorCode.LimitExceeded không? Lần đầu tiên đúc bản ghi bằng cách sử dụng: let errorCode: CKErrorCode = CKErrorCode (rawValue: error! .code)! –

+0

là Giới hạn đã vượt quá. tin nhắn máy chủ = "Đã vượt quá giới hạn số lượng tham chiếu sở hữu vào một bản ghi" –

+0

Nếu đó chỉ là 700 hoặc hơn, thì điều đó thật khủng khiếp. Ứng dụng mà tôi đang thực hiện sẽ đạt đến giới hạn đó trong sản xuất. Sau đó, thay vì một CKReference, bạn nên sử dụng một chuỗi với ID. Điểm bất lợi duy nhất là bạn sẽ không bị xóa tự động nếu bản ghi cha bị xóa. –

Trả lời

5

Có & không - tùy thuộc vào việc CKReferences có số CKReferenceAction của deleteSelf hay không.

Trong CloudKit Web Services Reference *, Apple liệt kê các giới hạn sau:

Tối đa số tài liệu tham khảo nguồn tới một mục tiêu duy nhất nơi mà hành động là xóa tự = 750

Điều này có thể giải thích tại sao EVCloudKitDao là có thể vượt quá giới hạn này (trong các ý kiến ​​ở trên) - its CKReferences were previously created with a CKReferenceAction of None.

Mặc dù chỉ đề cập đến giới hạn này trong tài liệu Dịch vụ web CloudKit, số Designing for CloudKit reference links to it và dường như giới hạn phía máy chủ áp dụng bất kể API CloudKit bạn đang sử dụng.

+0

Cảm ơn bạn đã xác nhận. Có, tôi đã sử dụng deleteSelf. –

+2

Tôi gặp sự cố chính xác này. Cảm ơn câu trả lời hoặc tôi đã dành những người biết bao nhiêu thời gian tìm ra điều này. Tôi đã thay đổi nó từ '.DeleteSelf' thành' .None' và bài kiểm tra 1000-> 1 và 5000-> 1 CKRecord-> CkReference của tôi hoạt động tốt ngay bây giờ. Tuy nhiên, tôi đã phải tìm ra cách để làm cho các tầng thác mình bằng tay. – Coder1224

+1

Thật không may, đó là hoặc là phân vùng các bản ghi của bạn thành các vùng logic (vì bạn có thể xóa toàn bộ vùng - và các bản ghi chứa trong một đơn vị CKModifyRecordZonesOperation.) – breakingobstacles

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