Come posso rendere serializzabile la mia classe personalizzata? Voglio specificamente scriverlo su un file su iPhone, solo plist e la classe te è solo una semplice classe di istanza, solo NSStrings e forse una NSUrl.Crea una classe personalizzata serializzabile in Objective-c/iPhone?
15
A
risposta
33
Dovrai implementare lo NSCoding protocol. Implementa initWithCoder: e encodeWithCoder: e la tua classe personalizzata funzionerà con NSKeyedArchiver e NSKeyedUnarchiver.
tuo initWithCoder: dovrebbe essere simile a questo:
- (id)initWithCoder:(NSCoder *)aDecoder
{
if(self = [super init]) // this needs to be [super initWithCoder:aDecoder] if the superclass implements NSCoding
{
aString = [[aDecoder decodeObjectForKey:@"aString"] retain];
anotherString = [[aDecoder decodeObjectForKey:@"anotherString"] retain];
}
return self;
}
e encodeWithCoder:
- (void)encodeWithCoder:(NSCoder *)encoder
{
// add [super encodeWithCoder:encoder] if the superclass implements NSCoding
[encoder encodeObject:aString forKey:@"aString"];
[encoder encodeObject:anotherString forKey:@"anotherString"];
}
Problemi correlati
- 1. Crea una classe personalizzata JSON serializzabile
- 2. .NET xsd importatore crea una classe non serializzabile
- 3. Perché una classe interna serializzabile non è serializzabile?
- 4. Svantaggi di contrassegnare una classe come serializzabile
- 5. Evitare "Attività non serializzabile" con metodo nidificato in una classe
- 6. Come si crea una sottoclasse personalizzata di IO in Ruby?
- 7. Crea Dizionario stile raccolta inizializzatore sulla classe personalizzata
- 8. Importare una classe personalizzata in Java
- 9. Rendi "di classe" transitoria o serializzabile MA la classe è serializzabile
- 10. Come si crea una classe in Wollok?
- 11. Serializzare una variabile di classe che non implementa serializzabile
- 12. Visualizza serializzabile e in conflitto serializzabile
- 13. Svantaggio nel rendere la classe serializzabile
- 14. come funziona serializzabile in java?
- 15. Classe MediaPlayer personalizzata in Android
- 16. Creazione di una classe String personalizzata
- 17. Come memorizzare una classe personalizzata usando CoreData
- 18. Creazione di una classe personalizzata IQueryable
- 19. Come scrivere una classe UItextField personalizzata
- 20. Matrice di una classe personalizzata come proprietà
- 21. Come si crea una classe di visualizzazione personalizzata a livello di programmazione?
- 22. Django: usa una classe personalizzata per request.user?
- 23. Crea istanza di una classe generica C#
- 24. FakeItEasy crea un falso di una classe
- 25. Importa classe Java personalizzata
- 26. Crea popup del tasto premuto su una tastiera personalizzata
- 27. C#, Metro Application, classe di eccezione personalizzata
- 28. Classe UIView personalizzata - Swift
- 29. Completamento asincrono Swift per restituire una matrice in classe personalizzata
- 30. Utilizzo di NSCoding in una sottoclasse di classe personalizzata
+1 Potrebbe essere necessario chiamare '[initWithCoder super: aDecoder]' o '[super encodeWithCoder: encoder ] a seconda di quale classe stai sottoclassi. =) –
Doh! Bella scoperta - risolto. –
Ho una domanda sulle migliori pratiche ... Devo rendere la classe serializzabile o posso lasciarlo allo sviluppatore dell'interfaccia utente per serializzarlo in qualsiasi output desiderato? – Patricia