2012-04-20 11 views
13

kiedy tworzę aplikację na iPhone'a (Tracker czasu, ToDoList itp.) Nigdy nie wiem, jaki jest najlepszy sposób na poradzenie sobie z danymi. Kiedyś użyłem plist, next time sqlite lub CoreData.Praca z danymi w aplikacjach na iOS (co wybrać: NSData, CoreData, sqlite, PList, NSUserDefaults)

Jak zdecydujesz, co jest najlepsze dla twojego projektu? (tylko mówić o zarządzaniu danymi)

Na przykład, jeśli chcesz rozwijać:

  • Time Tracker App> Czy PLIST Twój wybór?
  • Czytnik RSS App> CoreData?
  • Photo App> sqlite?
  • Klient poczty e-mail>?

Dla początkujących możesz wskazać mi z grubsza właściwe kierunki? (Wiem, że to zależy od aplikacji i tego, co chcesz zrobić z , ale każda myśl pomoże)

Jestem daleko od tworzenia skomplikowanych aplikacji, są one nadal dość proste.

Dzięki za pomoc, Marc

+1

jeśli twoja aplikacja to "system zarządzania bazami danych", a następnie przejdź do coredata.! Ale pamiętaj, że jest to framework, a nie baza danych. –

Odpowiedz

26

Można użyć tych zasad kciuka zdecydować, co magazynowanie model będzie pracować dla swojej aplikacji.

  • Jeśli dane wpisuje się w pamięci w całości i jest stosunkowo nieuporządkowane, korzystanie plist
  • Jeśli dane wpisuje się w pamięci do końca i ma drzewiastą strukturę, należy użyć XML
  • Jeśli dane nie mieści się w pamięci i ma strukturę wykresu, a aplikacja nie potrzebuje nadzwyczajnych możliwości zapytania, użyj Core Data
  • Jeśli dane nie mieszczą się w pamięci, mają złożoną strukturę lub aplikacja korzysta z potężnych możliwości zapytań dostarczanych przez relacyjne bazy danych , użyj sqlite
  • Jeśli dane muszą być tajne (np. hasło), użyj keychain.

Należy pamiętać, że te opcje często się pokrywają, ponieważ wiele modeli pamięci masowej zmieści się w tej samej aplikacji. Ostateczna decyzja zależy od osobistych preferencji - wybierasz technologię, którą lepiej rozumiesz.

Na przepełnieniu stosu było very good question about sqlite vs. Core Data, możesz przeczytać odpowiedzi na to pytanie.

+0

Dokładnie to, czego potrzebowałem, bardzo dobra odpowiedź, dziękuję i życzę miłego weekendu. –

1

Moja zasada dla każdego z nich będzie:

  • Time Tracker App> Rdzeń danych
  • RSS Reader App> Rdzeń danych
  • Photo App> Rdzeń danych
  • klienta e-mail> Dane podstawowe

Jednak w każdym przypadku byłyby rzeczy, które można przechowywać w systemie plików. Na przykład aplikacja do zdjęć oczywiście umieściłaby rzeczywiste zdjęcia w systemie plików.Tekst wiadomości e-mail będzie znajdować się w systemie plików itp. Rzeczywiste wiadomości RSS mogą również być plikami tekstowymi, ale z danymi meta w obiektach danych podstawowych.

W pewnym momencie może się okazać, że dane, które przechowujesz, przerastają skalowalność danych podstawowych. W tym momencie rozważasz przejście do SQLite.

Chodzi o to, że Core Data jest tak łatwa w użyciu, a więc lepsza od rzekomej lżejszej alternatywy, dlaczego jej nie używałeś?

+0

Dobry punkt Jeremy. –