Bạn không thể chỉ đặt cơ sở dữ liệu SQLite trong vùng chứa iCloud, vì nó có thể bị hỏng. (Khi bạn sửa đổi một SQLite DB, các tệp tạm thời được tạo và đổi tên, vì vậy nếu quá trình đồng bộ bắt đầu sao chép các tệp đó, bạn sẽ nhận được một cơ sở dữ liệu bị hỏng.)
Nếu bạn không muốn chuyển sang Dữ liệu cốt lõi, bạn có thể làm những gì Core Data làm: lưu trữ cơ sở dữ liệu của bạn trong thư mục tài liệu của bạn, và lưu trữ một bản ghi giao dịch trong thùng chứa iCould. Mỗi khi bạn thay đổi cơ sở dữ liệu, bạn thêm những thay đổi đó vào tệp nhật ký, vì vậy bạn có thể phát lại chúng và thực hiện các thay đổi tương đương trên các thiết bị khác.
Điều này khá phức tạp: ngoài việc nhận logic log/trả lời đúng, bạn sẽ muốn kết hợp các thay đổi dự phòng và định kỳ thu gọn nhật ký thành bản sao hoàn chỉnh của cơ sở dữ liệu.
Bạn có thể dễ dàng phát triển một giải pháp nếu bạn có thể khai thác kiến thức về ứng dụng của mình (Dữ liệu cốt lõi phải giải quyết vấn đề trong trường hợp chung). Ví dụ: bạn có thể lưu hóa đơn dưới dạng các tệp riêng biệt trong vùng chứa đám mây (văn bản, Danh sách bất động sản, XML, JSON, bất kỳ thứ gì), viết chúng ra dưới dạng thay đổi cơ sở dữ liệu và chỉ nhập các hóa đơn nếu hệ thống cho bạn biết chúng đã được tạo hoặc thay đổi.
Tóm lại, lựa chọn của bạn là di chuyển sang Dữ liệu chính hoặc tự viết giải pháp đồng bộ hóa. Cái nào là tốt nhất phụ thuộc vào các chi tiết cụ thể của đơn xin của bạn.
Trường hợp táo đã nói điều đó? – mamcx
Tôi vừa chỉnh sửa bài đăng của mình để bao gồm nguồn – kris