我有一個NSMutableArray創建存儲歌曲名稱和藝術家。我試圖將此數組轉換爲NSData格式,以便我可以將其保存到文本文件。如果試圖這樣做,輸出我得到的是不可讀:NSMutableArray NSData到.txt文件 - 輸出不可讀
bplist00ÔghX$ versionX $ objectsY $ archiverT $頂部†¯$ 「) -/3459:;!@ AEFGKLMQRSWXY]^_銅$nullÒ R $ 0〜 。V $類€€#Ò ZNS.objectsª€€€ € ...等
我使用的是從一個NSMutableArray到NSData的轉換代碼是:
NSFileManager *fm;
NSData *dataCache = [NSKeyedArchiver archivedDataWithRootObject:myList];
fm = [NSFileManager defaultManager];
if ([fm createFileAtPath:@"https://stackoverflow.com/users/nicholasvogler/desktop/Mysongs.txt" contents:dataCache attributes:nil] == NO)
{
NSLog (@"Could not create data file");
return 1;
}
所有對象在數組中是NSStrings,並且我爲字符串和數組添加了以下方法:
-(void) encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeObject: songname];
[encoder encodeObject: artist];
}
預期的輸出是:songName artist –
是否可以將數據從數組傳輸到NSData對象而不進行歸檔?我只是試圖從數組中獲取可讀的數據到文本文件中。對於我的生活,我不能讓它工作。 –
@NicholasVogler:當然。但這完全取決於您希望輸出的外觀。如果你唯一的目標是「讓它人類可讀」,那麼你可以構造一個包含與你的類相同信息的NSDictionary *對象的NSArray *對象,並使用'NSPropertyListSerialization'輸出一個XML plist。在你的對象和'NSDictionary'之間轉換更多的工作,但這樣你可以得到一個XML plist。 –