Jak mogę używać UserDefaults do zapisywania / pobierania ciągów znaków, wartości logicznych i innych danych w Swift?
ios
swift
nsuserdefaults
userdefaults
Mithun Ravindran
źródło
źródło
Odpowiedzi:
ref: NSUserdefault objectTypes
Swift 3 i nowsze
Sklep
Odzyskać
Usunąć
Usuń wszystkie klucze
Swift 2 i poniżej
Sklep
Odzyskać
Usunąć
Zarejestrować
na przykład wykryj aplikację przed uruchomieniem, utwórz strukturę do zapisania uruchamiania
Zarejestruj wartości domyślne podczas uruchamiania aplikacji:
usuń wartość po zamknięciu aplikacji:
i sprawdź stan jako
Nazwa pakietu UserDefaults
kolejna nazwa zestawu nieruchomości , głównie używana w koncepcji grup aplikacji , przykładowy scenariusz, który wziąłem stąd :
użycie userDefaults synchronizacja , szczegółowe informacje zostały dodane w zduplikowanej odpowiedzi.
źródło
Najlepszy sposób korzystania z UserDefaults
Kroki
Próba
wyliczenie dla kluczy używanych do przechowywania danych
Zapisz w UserDefaults, gdzie chcesz
Pobieraj dane z dowolnego miejsca w aplikacji
Usuń wartości
W ten sposób możesz najlepiej przechowywać prymitywne dane
Aktualizacja Nie musisz używać funkcji synchronize () do przechowywania wartości. Jak @Moritz zwrócił uwagę na to, że jest to niepotrzebne i podał artykuł na ten temat, sprawdź komentarze, aby uzyskać więcej szczegółów
źródło
synchronize()
, jest to wyjaśnione w dokumentacji. Jest to nie tylko bezużyteczne, ale może spowolnić dostęp do ustawień domyślnych.Swift 4 :
Sklep
Odzyskaj
Usunąć
źródło
źródło
W
NSUserDefaults
ten sposób możesz szybko użyć ,źródło
synchronize()
poleceniaNSUserDefaults
do upewnienia się, że twoje rzeczy są zapisywane po wykonaniu bloku zmian. Mogło to być bardziej konieczne w iOS 7 i wcześniejszych, ale w iOS 8 i nowszych nie powinieneś wywoływać synchronize () w większości sytuacji. Sprawdź to, aby uzyskać więcej informacji: codingexplorer.com/nsuserdefaults-a-swift-introductionSwift 5 i nowszy:
:)
źródło
Zapisałem NSDictionary normalnie i udało mi się go poprawnie pobrać.
// Do pobierania danych z NSDictionary.
źródło
źródło
UserDefault + Helper.swift
Stosowanie:
Zapisz wartość:
Pobierz wartość:
Usuń wartość:
źródło
Powiedziałbym, że odpowiedź Anbu jest w porządku, ale musiałem dodać ochronę podczas pobierania preferencji, aby mój program nie zawiódł
Oto zaktualizowany wycinek kodu w Swift 5
źródło
W klasie
A
ustaw wartość klucza:W klasie
B
pobierz wartość dla tekstu za pomocą klucza zadeklarowanego w klasieA
i przypisz ją do odpowiedniej zmiennej, której potrzebujesz:źródło
Swift 4, użyłem Enum do obsługi UserDefaults.
To tylko przykładowy kod. Możesz dostosować go do swoich wymagań.
Do przechowywania, pobierania, usuwania. W ten sposób po prostu dodaj klucz dla twojego klucza UserDefaults do wyliczenia. Obsługuj wartości podczas pobierania i przechowywania zgodnie z typem danych i wymaganiami.
Do przechowywania wartości w userdefaults,
Aby pobrać wartość z userdefaults,
źródło