2010-02-09 15 views
21

Moja aplikacja na iPhone'a ma kilka ustawień, które użytkownicy mogą często zmieniać. Chciałbym wiedzieć, czy istnieje jakikolwiek sugerowany sposób obsługi takich ustawień (czytanie i zapisywanie ich). Na stronach Apple znalazłem tylko samouczek dotyczący integracji ustawień aplikacji z aplikacją Ustawienia (link), ale nie chcę, aby użytkownik opuścił moją aplikację, aby mógł po prostu zmienić opcję.Zapisywanie ustawień aplikacji na telefon iPhone w aplikacji

Czy istnieje jakiś domyślny mechanizm obsługi takich ustawień w samej aplikacji lub czy muszę wdrożyć własne rozwiązanie?

Odpowiedz

43

Najlepszy i najprostszy sposób zapisywania ustawień w telefonie iPhone to NSUserDefaults. Nie musisz zajmować się systemem plików, plists ani innymi podobnymi rzeczami.

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

NSString *storedVal = @"This is what you want to save"; 
NSString *key = @"storedVal"; // the key for the data 

[defaults setObject:storedVal forKey:key]; 
[defaults synchronize]; // this method is optional 


// Get the results out 
NSString *results = [defaults stringForKey:key]; 

Oto co Apple mówi o rodzajach obiektów, które można zapisać w domyślnych

domyślny obiekt musi być lista nieruchomość , że jest instancją (lub kolekcjach kombinacja instancji ): NSData, NSString, NSNumber, NSDate, NSArray lub NSDictionary. Jeśli chcesz zapisać dowolny inny obiekt o numerze , powinieneś zazwyczaj zarchiwizować plik , aby utworzyć instancję NSData.

Istnieje kilka innych zastrzeżeń, jak w przypadku przechowywania NSDictionary, kluczowymi wartościami muszą być ciągi.

+2

Czy możliwe jest przechowywanie wartości typów innych następnie 'NSString' jak numerów lub dat? – RaYell

+0

Tak, zaktualizowałem swoją odpowiedź – kubi

+0

Dzięki kolego, taka odpowiedź chciałem usłyszeć. – RaYell

0

Przeczytaj File and Networking Guide z iPhone Developer Connection. Wyjaśni to, jak uzyskać ścieżkę dla różnych predefiniowanych lokalizacji w obszarze izolowanym aplikacji. Zalecam używanie NSDictionary do przechowywania preferencji, które można łatwo zapisać w systemie plików i przekonwertować na plik plist.

Powiązane problemy