Mam dość złożoną aplikację na iPhone'a, która korzysta z interfejsu API do pobierania danych z serwera i wyświetlania go użytkownikowi. Mam około 5 klas modeli, które są używane w całej aplikacji - po prostu rozszerzają NSObject.Dodawanie danych podstawowych do aplikacji iPhone z istniejącymi (zwykłymi) modelami
Chcę dodać pewne opory do modeli, aby umożliwić korzystanie z niektórych części aplikacji, nawet jeśli urządzenie jest w trybie offline - tak naprawdę jest to po prostu gloryfikowane buforowanie. Chcę tylko, aby pewne wystąpienia moich modeli były utrwalane - na przykład pozycje, które użytkownik utworzył w zakładek - a inne nie powinny, na przykład setki wyników wyszukiwania.
Czy Core Data to odpowiednie rozwiązanie? Trudności, które widzę, to:
- Musiałbym zmienić sposób, w jaki uruchamiam obiekty modelu w całym projekcie. Będę musiał je zainicjować jako część kontekstu, co niekoniecznie ma sens, jeśli pochodzą one z zewnętrznego interfejsu API.
- Będę musiał uważać, aby nie utrwalać instancji, których nie chcę. Wydaje się to sprowadza się albo do usuwania zarządzanego obiektu tuż po jej utworzeniu (bardzo niewygodne) lub za pomocą oddzielnego, nietrwałe kontekst przypadkach nie chcę trwali (lepsze, ale wciąż nieco niewygodne)
Miałem nadzieję, że będę mógł nadal korzystać z moich modeli w całej aplikacji, nie zmieniając kodu, który nie wymaga dbałości o utrzymanie, ale to nie wydaje się możliwe z uwagi na moje wymagania. Alternatywą jest utworzenie nowego zestawu obiektów zarządzanych równolegle z moimi istniejącymi obiektami i używanie obiektów zarządzanych wyłącznie w celu zachowania ciągłości - ale ten rodzaj duplikowania nigdy nie wydaje się właściwym rozwiązaniem.
Czy powinienem próbować dopasować Core Data do tego, a jeśli tak, to w jaki sposób? Czy powinienem po prostu przyjrzeć się innym opcjom - sqlite3 (wydaje się nieco skomplikowany dla tego, czego potrzebuję), domyślne ustawienia użytkownika (prawdopodobnie nie to, do czego są przeznaczone), a nawet serializowanie i pisanie własnych obiektów do plików (wydaje się hack-ish).
Dzięki za wszelkie dane wejściowe!
Dzięki! Nie mogę uwierzyć, że przegapiłem NSKeyArchiver. Zrobię to - może być dokładnie to, czego potrzebuję. –
Nie ma problemu, cieszę się z pomocy (: –