2010-03-15 17 views
7

NSKeyedArchiver'ı kullandığımda * .plist yazan verilerdeyim, insanların çıkış dosyalarının * .txt olarak veya hatta hiç uzantıya sahip olmadığı bazı örnekler gördüm.NSKeyedArchiver hangi biçimi kaydediyor?

-(void)saveCore { 
    NSMutableData *data = [[NSMutableData alloc] init]; 
    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; 
    [archiver encodeObject:reactorCore forKey:@"CORE"]; 
    [archiver finishEncoding]; 
    [data writeToFile:[self dataFilePath] atomically:YES]; 

    [data release]; 
    [archiver release]; 
} 

Gary

+0

@JasonCoco Doğru değil. Ole Begemann'ın cevabına bakınız. –

+0

@JonaChristopherSahnwaldt Bu doğru. Oluşturulan veriler ikili plist verileridir ve yapılandırılmış şekli tamamen tescillidir. Evet, bu ikili plist verilerini bir xml plist gibi başka bir şeye dönüştürebilirsiniz, fakat plist'in daha az tescilli bir şekilde nasıl organize edildiğini ve herhangi bir formun üstlenileceği anlamına gelmez. İstedikleri ve geçmişte sahip oldukları sürümler arasında kolayca değişebilir. –

+0

@JasonCoco 'İkili plist' ile ne demek istediğini anlamıyorum. İkili bir dosya biçimini kastettiğinizi ve XML'in ikili bir biçim olmadığını düşündüm. Ve bildiğim kadarıyla, plist XML formatı onun konseptinden bu yana değişmedi. –

cevap

14

İstediğiniz herhangi bir dosya uzantısını kullanabilirsiniz. NSKeyedArchiver'in kullandığı gerçek dosya formatıyla tamamen ilgisizdir. Varsayılan olarak, arşiv ikili biçimde olacaktır, ancak arşivleyicinin outputFormat özelliğini NSPropertyListXMLFormat_v1_0 olarak ayarlarsanız, bir XML plist yazacaktır. Bunu yaptığınızda, muhtemelen dosyanıza bir .plist veya .xml uzantısı vermelisiniz.

+0

Teşekkürler Ole, çok takdir ediyorum. – fuzzygoat

+1

Bu% 100 doğrudur. TextMate'de bir ikili plist dosyasını açarsanız, otomatik olarak ASCII'ye dönüşecektir (üstte “!!! BINARY LIST WARNING !!!” ile). Biri için kafa karıştırıcı olabilir. –

İlgili konular