Çevrimdışı kullanım için kaydetmek istediğim tonlarca nesneye sahibim. Şu anda, çevrimdışı olması için dosyaya kodlanmış veriler ve kodlanmış veriler için NSCoder uyumlu sınıflar oluşturuyorum. Kolay yolu yapmak için NSCoder etkin sınıf
Yani .h ben nesneleri tanıtmak:- (id) initWithCoder: (NSCoder *)coder {
if (self = [super init]) {
[self setMyObject: [coder decodeObjectForKey:@"myObject"]];
}
}
- (void) encodeWithCoder: (NSCoder *)coder {
[coder encodeObject: myObject forKey:@"myObject"];
}
Yani sınıf alıcı ve ayarlayıcı ile sadece kukla depolama alanı:
@interface MyClass : NSObject<NSCoding>{
NSNumber* myObject;}
@property(nonatomic,retain) NSNumber* myObject;
Ve .m içinde
Ben INITs olun. Kod çözme/kodlama yapmak için daha iyi bir yol var mı. Kodlama ve kod çözme için bir şekilde @dynamic veya Anahtar-değer kodlamasını kullanabilir miyim? Temel olarak, program başlatıldığında sınıftaki tüm değişkenlerin dosyaya kaydedilmesini ve nesneye geri dönmesini istiyorum. Bu yaklaşım işe yarar, ancak tüm sınıfları oluşturmak zaman ve çaba gerektirir.
Harika bir cevap için teşekkürler, bu benim amacım için mükemmel. Size bir oy vereceğim, ancak yeterli saygınlığım yok .. – MapaX
Kodda küçük bellek sızıntısı var. Şunları eklemelisiniz: free (properties); PropertyKeys yöntemine . – MapaX
İyi bir çağrı - Ben düzeltdim. –