Jeśli użytkownik jest aktualnie w moim kontroler widoku edycji, chcę mieć możliwość zapisania zmian, gdy użytkownik zamknie moją aplikację. Aby to zrobić, obserwuję numer udostępnionej aplikacji. W delegacie mojej aplikacji używam metody applicationWillTerminate:
do zamykania wszystkich elementów i uwalniania wszystkich podstawowych kontekstów danych.Aplikacja zakończy powiadomienie i zapisuje wersję roboczą (dane podstawowe)
Problem mam ze znalezieniem jest to, że metoda w app delegata applicationWillTerminate:
pobiera nazywane przed obserwatorzy reagują na zgłoszenia . Oznacza to, że mój podstawowy stos danych został zwolniony i zamknięty, zanim mój kontroler widoku edycji ma szansę na zapisanie czegokolwiek!
Jak to zwykle przezwycięża się, ponieważ nie widzę sposobu!
Dziękujemy,
Michael
+1 za zapisywanie wersji roboczych, gdy użytkownik wprowadza zmiany; czas na cokolwiek użytecznego lub skomplikowanego w trakcie wypowiedzenia jest dość ograniczony. –
Interesujący punkt dotyczący zapisywania zmian w momencie ich wystąpienia. Mogę się nad tym zastanowić. Kiedy wspominasz o zamieszczaniu moich własnych powiadomień, czy nie zostaną one odebrane w następnej pętli uruchamiania i po zakończeniu kodu 'applicationWillTerminate:'? Ponieważ cały kod będzie na tym samym (głównym) wątku. –
Michael: prawdopodobnie masz rację - zdałem sobie z tego sprawę zaraz po opublikowaniu mojej odpowiedzi (teraz edytowanej). Najprawdopodobniej najlepiej jest zapisywać zmiany w momencie ich wystąpienia i tym samym całkowicie obejść ten problem. – Tim