2010-07-01 18 views

cevap

32

saklanan NSData

NSData *data = [[NSMutableData alloc]initWithContentsOfFile:YOURFILEPATH]; 
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; 
YOURDICTIONARY = [unarchiver decodeObjectForKey: YOURDATAKEY]; 
[unarchiver finishDecoding]; 
[unarchiver release]; 
[data release]; 
2

Bir Robert'ın cevabın çok daha basit versiyonu geri NSDictionary almak için NSData

için
NSMutableData *data = [[NSMutableData alloc]init]; 
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data]; 
[archiver encodeObject:YOURDICTIONARY forKey: YOURDATAKEY]; 
archiver finishEncoding]; 
[data writeToFile:YOURFILEPATH atomically:YES]; 
[data release]; 
[archiver release]; 

NSDictionary dönüştürmek için NSKeyedArchiver kullanım:

[NSKeyedArchiver archiveRootObject:YOURDICTIONARY toFile:YOURFILEPATH]; 
buna

Ve:

YOURDICTIONARY = [NSKeyedUnarchiver unarchiveObjectWithFile:YOURFILEPATH]; 

Ya aslen şeylerin içine bir dosya imputing olmadan belirtilen soruyu cevaplamak için: o birlikte veya ARC olmadan aynı kod yüzden tüm fabrika yöntemleri var

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:YOURDICTIONARY]; 
... 
YOURDICTIONARY = [NSKeyedUnarchiver unarchiveObjectWithData:data]; 

; Kullanılan yöntemler OS X v10.2'den beri ve iOS'tan beri ilk günden beri kullanılabilir.

İlgili konular