Hầu hết các ví dụ sqlite tôi đã tìm thấy nói về việc tạo một tệp db từ dòng lệnh đầu tiên và sau đó thêm nó vào ứng dụng của bạn. Đối với dự án của tôi, tôi muốn có thể tạo cơ sở dữ liệu của tôi trong ứng dụng khi nó khởi động lần đầu tiên và sau đó lưu nó vào một tệp db trong sandbox của người dùng. Có cách nào làm được việc này không?iPhone tạo cơ sở dữ liệu SQLite khi chạy?
Trả lời
Bạn có thể kiểm tra tệp (như thường lệ) khi ứng dụng khởi động. Nếu tập tin không tồn tại, thay vì sao chép các tập tin được tạo trước, chỉ đơn giản là:
- Mở tập tin như bình thường sử dụng
sqlite3_open()
- Chạy lệnh sáng tạo của bạn (ví dụ, tạo bảng biểu, quan điểm của bạn, vv)
Đó thực sự là tất cả.
Tôi nghĩ rằng tôi sẽ lặp lại tiếng kêu mở rộng, rằng nếu bạn đang xem xét việc làm bất cứ điều gì với một cơ sở dữ liệu, bạn nên xem CoreData. Nó sử dụng SQLLite bên dưới và đơn giản hơn để thiết lập, và nhiều đơn giản hơn để di chuyển sau này khi bạn tìm thấy bạn cần một vài điều mới trong DB!
Dữ liệu chính cung cấp một cách dễ dàng để quản lý việc này - nó sẽ tìm kiếm tệp cơ sở dữ liệu khi khởi động nếu không tồn tại nó sẽ tạo một tệp cho bạn. Nó cũng sẽ tạo mô hình cho bạn tự động dựa trên sơ đồ mà bạn có thể tạo trong xCode.
Khi bạn đến để nâng cấp những người có cơ sở dữ liệu cũ hơn trong tương lai, nó cũng sẽ đơn giản hóa việc di chuyển dữ liệu.
Bạn cũng có thể truy cập dữ liệu bằng các đối tượng Dữ liệu được tạo. Dữ liệu cốt lõi cũng sẽ sử dụng tải chậm cho các đối tượng mà nó tạo, tốt hơn nhiều so với việc phải theo cách thủ công
Để biết thêm thông tin, xem dự án Giới thiệu vị trí và đọc trên Dữ liệu cốt lõi trong tài liệu.
oh tại sao tôi không thử? Tôi nghĩ nó sẽ phức tạp hơn. ;) – Cruinh