2012-04-20 26 views
13

khi tôi phát triển một Ứng dụng iPhone (Trình theo dõi thời gian, ToDoList v.v.) Tôi không bao giờ biết cách tốt nhất để xử lý dữ liệu. Một khi tôi sử dụng một plist, thời gian tới sqlite hoặc CoreData.Làm việc với dữ liệu trong Ứng dụng iOS (Chọn gì? NSData, CoreData, sqlite, PList, NSUserDefaults)

Làm thế nào để bạn quyết định whats là tốt nhất cho dự án của bạn? (Chỉ nói về quản lý dữ liệu)

Ví dụ nếu bạn muốn phát triển:

  • Time Tracker App> Is plist sự lựa chọn của bạn?
  • Ứng dụng đọc RSS> CoreData?
  • Ứng dụng ảnh> sqlite?
  • Khách hàng của EMail>?

Đối với người mới bắt đầu, bạn có thể chỉ cho tôi gần đúng hướng dẫn không? (Tôi biết nó phụ thuộc rất nhiều vào App và những gì bạn muốn làm với nó nhưng bất kỳ suy nghĩ sẽ giúp)

Tôi xa phát triển các ứng dụng phức tạp, họ vẫn còn khá đơn giản.

Nhờ sự giúp đỡ, Marc

+1

nếu ứng dụng của bạn là 'hệ thống quản lý cơ sở dữ liệu', sau đó truy cập coredata.! Nhưng hãy nhớ nó là khuôn khổ chứ không phải là một cơ sở dữ liệu. –

Trả lời

26

Bạn có thể sử dụng các quy tắc của ngón tay cái để quyết định mô hình những gì lưu trữ sẽ làm việc cho ứng dụng của bạn.

  • Nếu dữ liệu phù hợp trong bộ nhớ hoàn toàn và tương đối không có cấu trúc, sử dụng plist
  • Nếu dữ liệu phù hợp trong bộ nhớ hoàn toàn và có cấu trúc cây giống, sử dụng XML
  • Nếu dữ liệu không phù hợp trong bộ nhớ và có cấu trúc biểu đồ và ứng dụng không cần khả năng truy vấn bất thường, hãy sử dụng Core Data
  • Nếu dữ liệu không vừa trong bộ nhớ, có cấu trúc phức tạp hoặc ứng dụng hưởng lợi từ khả năng truy vấn mạnh được cung cấp bởi cơ sở dữ liệu quan hệ , sử dụng sqlite
  • Nếu dữ liệu phải là bí mật (ví dụ. mật khẩu), sử dụng keychain.

Lưu ý rằng những lựa chọn này thường trùng lặp, bởi vì nhiều mô hình lưu trữ sẽ phù hợp với cùng một ứng dụng. Quyết định cuối cùng của bạn phụ thuộc vào sở thích cá nhân của bạn - bạn chọn một công nghệ mà bạn hiểu rõ hơn.

Có một very good question about sqlite vs. Core Data trên Ngăn xếp ngăn xếp, bạn có thể muốn đọc qua câu trả lời cho câu hỏi đó.

+0

Chính xác những gì tôi cần, câu trả lời rất tốt, cảm ơn và có một ngày cuối tuần tốt đẹp. –

1

Quy tắc của ngón tay cái cho mỗi người trong số những người sẽ là:

  • Time Tracker App> Core Data
  • RSS Reader App> Core Data
  • Ảnh App> Core Data
  • EMail Khách hàng> Dữ liệu chính

Mặc dù trong mỗi trường hợp, bạn sẽ lưu trữ những thứ bạn lưu trữ trên hệ thống tệp. Ví dụ: ứng dụng ảnh sẽ hiển thị ảnh thực trên hệ thống tệp.Các văn bản của các email sẽ được trên hệ thống tập tin vv Các tin nhắn RSS thực tế có thể là các tập tin văn bản quá, nhưng với dữ liệu meta trong các đối tượng dữ liệu cốt lõi.

Tại một thời điểm nào đó, bạn có thể thấy rằng dữ liệu bạn đang lưu trữ vượt quá khả năng mở rộng của Dữ liệu cốt lõi. Tại thời điểm đó, bạn sẽ xem xét việc chuyển sang SQLite.

Vấn đề là Dữ liệu cốt lõi rất dễ sử dụng và vượt trội so với các lựa chọn thay thế trọng lượng nhẹ hơn bị cáo buộc, tại sao bạn không sử dụng nó?

+0

Điểm tốt Jeremy. –

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