2012-04-17 19 views
0

私はデータを保存する最良の方法を見つけようとしています。plsとnsdataでの保存の比較

が問題それをしないあなたがそう

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を使用してのplistにデータを保存するとき

私は(私はNSDictionariesにパース)の小さなXMLファイルを扱っています
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:FILE_NAME]; 

[myArray writeToFile:filePath atomically:YES]; 

および大規模なMP4ビデオ。これら2つのファイルストレージ方法のどちらを使用すべきかに関する推奨事項はありますか?おかげで私は[myArray writeToFile:filePath atomically:YES];(速く、簡単に、少ないコード)のために行くだろう

答えて

3

しかし、あなたのNSArrayNSDictionariesのみ非自己のオブジェクトが含まれている場合にのみは(のみNSNumberNSStringNSArray、などが含まれています)。

NSPropertyListSerializationを使用する場合は、おそらくオプションNSPropertyListBinaryFormat_v1_0を使用してください。高速で、ファイルサイズも小さくなります。

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

XMLを解析してCoreDataデータベースに格納することも考えられます。これにより、より簡単なクエリが可能になります。

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

関連する問題