Mam mnóstwo obiektów, które chcę zapisać do użytku w trybie offline. Obecnie używam klas zgodnych z NSCoder dla obiektów i zakodowanych danych do pliku, aby były dostępne w trybie offline.Łatwy sposób na NSCoder włączone klasy
Więc w .h mogę przedstawić obiekty:
@interface MyClass : NSObject<NSCoding>{
NSNumber* myObject;}
@property(nonatomic,retain) NSNumber* myObject;
A w .m robię inits:
- (id) initWithCoder: (NSCoder *)coder {
if (self = [super init]) {
[self setMyObject: [coder decodeObjectForKey:@"myObject"]];
}
}
- (void) encodeWithCoder: (NSCoder *)coder {
[coder encodeObject: myObject forKey:@"myObject"];
}
Więc klasa jest tylko atrapa przechowywanie z getter i setter. Jest tutaj lepszy sposób na dekodowanie/kodowanie. Czy mogę użyć kodowania i dekodowania w jakiś sposób @dynamic lub Key-value? Zasadniczo chcę, aby wszystkie zmienne w klasie zapisane do pliku i powrócić do obiektu podczas uruchamiania programu. To podejście działa, ale tworzenie wszystkich klas wymaga czasu i wysiłku.
Dzięki za wspaniałą odpowiedź, jest to idealne dla mojego celu. Chciałbym dać ci głos, ale nie mam wystarczającej reputacji .. – MapaX
Kod ma mały wyciek pamięci. Musisz dodać: za darmo (właściwości); do metody propertyKeys. – MapaX
Dobra rozmowa - naprawiłem to. –