Jak mogę przekształcić moją własną klasę w klasę? W szczególności chcę napisać go do pliku na iPhone'a, tylko plist i twoja klasa to tylko prosta klasa instancji, po prostu NSStrings i może NSUrl.Tworzenie niestandardowej klasy Serializable w Objective-c/iPhone?
15
A
Odpowiedz
33
Będziesz chciał zaimplementować NSCoding protocol. Zaimplementuj initWithCoder: i encodeWithCoder: a twoja niestandardowa klasa będzie działać z NSKeyedArchiver i NSKeyedUnarchiver.
Twój initWithCoder: powinien wyglądać następująco:
- (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;
}
i encodeWithCoder:
- (void)encodeWithCoder:(NSCoder *)encoder
{
// add [super encodeWithCoder:encoder] if the superclass implements NSCoding
[encoder encodeObject:aString forKey:@"aString"];
[encoder encodeObject:anotherString forKey:@"anotherString"];
}
Powiązane problemy
- 1. Tworzenie niestandardowej klasy IQueryable
- 2. Tworzenie niestandardowej klasy sys.stdout?
- 3. Wada tworzenia klasy Serializable
- 4. Tworzenie niestandardowej Iterator Java?
- 5. Tworzenie niestandardowej adnotacji @Inject
- 6. Tworzenie niestandardowej klawiatury
- 7. Tworzenie niestandardowej funkcji MySQL?
- 8. PowerShell: Tworzenie niestandardowej wyjątek
- 9. Tworzenie niestandardowej galerii - przesłonięcie OnFling
- 10. Tworzenie niestandardowej bazy danych magicznych
- 11. Tworzenie niestandardowej reguły w jQuery Validate
- 12. Dodaj kolekcję niestandardowej klasy do Settings.Settings
- 13. Moduł niestandardowej odpowiedzi Yii2 klasy
- 14. nadpisywanie bool() dla niestandardowej klasy
- 15. Tablica niestandardowej klasy jako własności
- 16. Używanie niestandardowej klasy w kompozycji Wordpress
- 17. Dodaj do niestandardowej klasy w Pythonie
- 18. używać Android Adnotacje w niestandardowej klasy dialogowym
- 19. Tworzenie klasy właściwości rozszerzalnych (OOP)
- 20. rodzajowych Java i Serializable
- 21. Android Parcelable i Serializable
- 22. Tworzenie niestandardowej reguły sprawdzania kodu kodu weryfikacyjnego
- 23. WPF DataGrid - Tworzenie nowej niestandardowej Kolumna
- 24. Tworzenie niestandardowej kolumny z automatycznymi przyrostami znaków
- 25. Tworzenie klasy CSS w jQuery
- 26. Dynamicznie tworzenie klasy w Ruby
- 27. Tworzenie klasy węzłów w Javie
- 28. Czy dodanie [Serializable] do klasy może mieć wpływ na wydajność?
- 29. Kara za wdrożenie Serializable w Javie?
- 30. Tworzenie i używanie niestandardowej listy <T> w C#
+1 może trzeba zadzwonić '[SUPER initWithCoder: aDecoder]' lub '[Super encodeWithCoder: enkodera ] 'w zależności od klasy, którą tworzysz podklasy. =) –
Doh! Ładne znalezisko - naprawione. –
Mam pytanie dotyczące sprawdzonych metod ... Czy powinienem sprawić, by klasa mogła być seryjna, czy mogę zostawić to programistce interfejsu użytkownika, aby przekształcić ją do postaci szeregowej w dowolnym pożądanym wyjściu? – Patricia