2011-08-09 42 views
6

Tôi muốn cung cấp hỗ trợ iCloud cho trình bao bọc của tôi xung quanh sqlite. Không sử dụng coredata.Cách bật hỗ trợ iCloud cho sqlite?

Tôi tự hỏi cách bật iCloud cho nó. Nội dung cơ sở dữ liệu được thay đổi mọi lúc (dành cho lập hóa đơn). Ngoài ra, nếu có thể có một số loại phiên bản sẽ là tuyệt vời.

Tồn tại bất kỳ mẫu nào tôi có thể sử dụng để thực hiện việc này?

Trả lời

6

Câu trả lời ngắn gọn là không, bạn sẽ cần phải sử dụng Dữ liệu cốt lõi như bạn nghi ngờ. Apple đã tuyên bố rằng sqlite không được hỗ trợ.

Chỉnh sửa: Kiểm tra phần trên iCloud that's now in the iOS Application Programming Guide dưới Sử dụng iCloud kết hợp với cơ sở dữ liệu

Sử dụng iCloud với một cơ sở dữ liệu SQLite có thể chỉ khi ứng dụng của bạn sử dụng Core Data để quản lý cơ sở dữ liệu đó. Truy cập các tệp cơ sở dữ liệu trực tiếp trong iCloud sử dụng giao diện SQLite không được hỗ trợ và có khả năng sẽ làm hỏng cơ sở dữ liệu của bạn . Tuy nhiên, bạn có thể tạo một kho dữ liệu Core dựa trên trên SQLite miễn là bạn làm theo một vài bước bổ sung khi thiết lập cấu trúc dữ liệu chính . Bạn cũng có thể tiếp tục sử dụng các loại khác của Core Lưu trữ dữ liệu — nghĩa là, các cửa hàng không dựa trên SQLite — mà không có bất kỳ sửa đổi đặc biệt nào của .

+0

Trường hợp táo đã nói điều đó? – mamcx

+0

Tôi vừa chỉnh sửa bài đăng của mình để bao gồm nguồn – kris

7

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.

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