0

データを保存する最善の方法を見つけようとしています。

そのようにデータをplistに保存するときは重要ですか

NSString *error;
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPath = [rootPath stringByAppendingPathComponent:@"yourFile.plist"];
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:rootObj
                                                               format:NSPropertyListXMLFormat_v1_0
                                                     errorDescription:&error];
if(plistData) {
  [plistData writeToFile:plistPath atomically:YES];
}
else {
  NSLog(@"Error : %@",error);
  [error release];
}

または NSData を使用して

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:FILE_NAME];

[myArray writeToFile:filePath atomically:YES];

私は小さな XML ファイル (NSDictionaries に解析します) と大きな MP4 ビデオを扱っています。これら 2 つのファイル ストレージ方法のどちらを使用するべきかについて、何か推奨事項はありますか? ありがとう

4

1 に答える 1

3

私は[myArray writeToFile:filePath atomically:YES];(高速、簡単、少ないコード)に行きますが、あなたのNSArrayまたはNSDictionariesのみに非自己オブジェクトが含まれている場合のみ(、、、NSNumberなどのみが含まNSStringれていますNSArray)。

使用するNSPropertyListSerialization場合は、おそらくオプションを使用する必要がありますNSPropertyListBinaryFormat_v1_0。より高速で、ファイル サイズが小さくなります。

しかし、XML を解析してから XML Plist に格納することが理にかなっているのかどうかも考える必要があります。:) はい。そうすれば、それらをより簡単に処理できるので、それは理にかなっています。

XML を解析して CoreData データベースに格納することも検討できます。その後、クエリがより簡単になります。

NSDocumentDirectory にも保存する MP4 ビデオ。

于 2012-04-17T18:07:12.093 に答える