Ich habe den folgenden Code geschrieben:
%Vor%In meiner Ansicht ändere Methode, ich ändere den ViewType. Wenn die App geschlossen wird, möchte ich den letzten ViewType in einem UserDefauls speichern, so dass ich beim ersten Laden den letzten ViewType des Benutzers überprüfen und auf den Standardwert setzen kann.
Ich habe den folgenden Code geschrieben:
%Vor%Aber XCode zeigt eine Warnung: Inkompatibler Zeiger auf Integer-Konvertierung.
irgendwelche Lösungen? Danke.
NSUserDefaults
gespeicherte Objekte keine C-Datentypen.
Dies wurde nicht versucht, aber Sie könnten möglicherweise nur mit der folgenden Änderung davonkommen:
%Vor% Die Schreibweise @()
ist eine Abkürzung für [NSNumber numberWithInt:viewType]
.
Wie bereits erwähnt hier NSUserDefaults ' setObject:forKey:
Methode akzeptiert nur Objekte. Da der Aufzählungstyp kein Objekt ist, können Sie ihn nicht mit dieser Methode festlegen. Da Enums standardmäßig Integer sind, können Sie den Wert mit der Methode setInteger:forKey:
speichern.
Weil ViewType
kein Objekt ist.
Sie können ViewType in ein NSValue
zuerst einfügen.
enums sind ganze Zahlen, setObject benötigt ein Objekt !!!
Diese Enumeration in ein Objekt einkapseln (kann ein NSValue oder eine benutzerdefinierte Klasse sein). Dann schreibe es in UserDefaults.
Oder wenn Sie XCode4 verwenden,
%Vor%Tags und Links objective-c enums