web-dev-qa-db-ja.com

NSMutableArrayまたはNSDictionaryデータをiOSでファイルとして保存することは可能ですか?

NSMutableArrayまたはNSDictionaryを永続ファイルとして保存したい。それでは、後でファイルを再度開きたいと思います。

これは可能ですか?もしそうなら、どうすればそれを行うことができますか?

19
RAGOpoR

ファイルに書き込むには

 NSArray * path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory、NSUserDomainMask、YES); 
 NSString * documentsDirectory = [paths objectAtIndex:0]; 
 NSString * filePath = [documentsDirectory stringByAppendingPathComponent:FILE_NAME]; 
 
 [myArray writeToFile:filePathアトミック:YES]; 

ファイルから読み取るには

[。 
 
 myArray = [NSArray arrayWithContentsOfFile:filePath]; 

ファイルが存在しない場合、myArrayはnilになります。また、NSDictionaryにも同様の方法があります。これらの方法の詳細については、リファレンスを確認してください。

51
taskinoor

辞書をJSONデータに変換してファイルに書き込むことができるかもしれません。

NSDictionary *dict = /* the NSDictionary/NSArray you need to write */

NSError *writeError = nil;
NSData* data;
data = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&writeError];

if (!writeError) {
    [data writeToFile:filePath atomically:YES];
}
2
Hancock_Xu