NSData(contentsOfURL:options:)
でローカルファイルを読むとき、どちらが適切な読み取りオプションですか?ローカルファイルを読み込むときに使用するNSDataReadingOptionsはどれですか?
NSData(contentsOfURL:)
もあり、NSDataReadingOptions
はありません。どの読み込みオプションがデフォルトで使用されますか?
Apple docsを参考にしてください。あなたがこの方法を使用する場合
NSData(contentsOfURL:options:)
でローカルファイルを読むとき、どちらが適切な読み取りオプションですか?ローカルファイルを読み込むときに使用するNSDataReadingOptionsはどれですか?
NSData(contentsOfURL:)
もあり、NSDataReadingOptions
はありません。どの読み込みオプションがデフォルトで使用されますか?
Apple docsを参考にしてください。あなたがこの方法を使用する場合
:
NSData dataWithContentsOfFile:(NSString *)path
options:(NSDataReadingOptions)readOptionsMask
error:(NSError * _Nullable *)errorPtr;
適切なオプションを使用すると、データをどうする予定かに依存します。 Appleドキュメントに記載されているように:
NSDataReadingUncached
:ファイルシステムのキャッシュにファイルを保存しないことを示すヒント。NSDataReadingMappedIfSafe
:可能で安全な場合、ファイルを仮想メモリにマップする必要があることを示すヒント。NSDataReadingMappedAlways
:できるだけファイルをマップすることを推奨します。 (両方が指定されている場合、これはNSDataReadingMappedIfSafe
よりも優先されます。)mappedFilesに関するいくつかの説明は:ファイルは、データオブジェクトの存在の持続時間の間に存在することが保証されている場合にのみ使用してください。一般的にdataWithContentsOfFile:
メソッドを使用する方が安全です。
mappedFilesオプションを使用する場合、このメソッドは、マップされたファイルが基礎となるオペレーティングシステムから利用可能であるとみなします。マップされたファイルは仮想メモリ技術を使用して、ファイルのページを実際に必要になるまでメモリにコピーしないようにします。
他の方法:
NSData dataWithContentsOfFile:(NSString *)path;
は、与えられたオプションなしdataWithContentsOfFile:options:error
のと同等です。私たちは一緒にこれを置く場合
結論
、あなたが使用する必要があります。
dataWithContentsOfFile:
あなたのデータ、またはメモリ使用量の問題を特定のニーズを持っていない場合。より安全な選択です。NSDataReadingUncached
オプション付きdataWithContentsOfFile:options:error
あなたはすぐに、ファイル全体をロードしたくない場合にのみdataWithContentsOfFile:options:error
一度NSDataReadingMappedIfSafe
オプションでデータを使用する場合、あなたは、ファイルの意志がNSDataの全体の寿命の間に存在することを確認していますオブジェクト。dataWithContentsOfFile:options:error
NSDataReadingMappedAlways
オプション - 上記と同じですが、安全対策がありません。出典:
Apple Documentation : NSReadingOptions