Zajmuję się tworzeniem aplikacji na iPhone'a, która intensywnie korzysta z danych podstawowych, przede wszystkim ze względu na funkcje podobne do bazy danych (takie jak możliwość ustawiania porządku sortowania lub predykatu na żądanie pobierania). Przedstawiam wszystkie dane, które pobieram w różnych kontrolerach UITableViewController.Dotyk Cocoa: Kiedy NSFetchedResultsController staje się niezbędny do zarządzania pobieraniem danych podstawowych?
To, co chciałbym wiedzieć, to przybliżony pomysł na liczbę obiektów, które mogę pobrać, zanim dobrze będzie użyć NSFetchedResultsController do obsługi żądania. W dokumentach Core Data pisze, że sklepy SQLite uważają "10 000 obiektów za dość mały zestaw danych", ale w dokumentacji NSFetchedResultsController wspomina o przechowywaniu "dziesiątek obiektów" w pamięci naraz.
Mam do czynienia głównie z zestawami danych do pięćdziesięciu obiektów, z których każdy może mieć tuzin przykładów NSNumber i NSString, a także relacji jeden do wielu dla następnego zestawu obiektów (np. instancje obiektu A, z których każdy ma stosunek do wielu do zbioru trzydziestu (różnych) wystąpień obiektu B, z których każdy ...).
Czy ten scenariusz dobrze pasuje do korzystania z NSFetchedResultsController, czy mogę uciec z prostym NSArray wyników? Nie mam problemu z zarządzaniem nicetami kontrolera (wygodne metody uzyskiwania obiektu dla ścieżki indeksu UITableView, dodawania nowych obiektów z powrotem do kontekstu itp.), Zastanawiam się tylko nad wykorzystaniem pamięci każde podejście.
Powinienem wspomnieć, że aplikacja będzie kierowana głównie do użytkowników iPhona 3G (nie S) i pierwszej generacji iPodów Touch, dlatego należy pamiętać o ograniczonej pamięci tych platform.
Po drugie i nie mogę go wystarczająco polecić. Jestem w trakcie ponownego pisania mojej aplikacji z CoreData, i widziałem ogromne zyski za pomocą FetchedResultsController. – jbrennan
Z wyjątkiem tego, że osobiście miałem problemy z ładowaniem zestawów danych za pomocą fetchResultsController i nie będę już na nie odpowiadać. Wygląda na to, że nie pobiera prawidłowo pobranych obiektów ObjectObjects, gdy przegląda je i wydaje się, że piekło skupia się na trzymaniu wszystkiego podczas ładowania. – TheCodingArt