Если вы используете метод:
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:
если у вас нет особых потребностей в данных, или проблемы использования памяти. Это более безопасный выбор.
dataWithContentsOfFile:options:error
с NSDataReadingUncached
вариант, если вы будете использовать данные только один раз
dataWithContentsOfFile:options:error
с NSDataReadingMappedIfSafe
вариант, если вы не хотите, чтобы немедленно загрузить весь файл, и вы уверены, что файл будет существует в течение всего срока службы NSData объект.
dataWithContentsOfFile:options:error
с NSDataReadingMappedAlways
вариант - то же, что и выше, но меньше гарантий.
Источники:
Apple Documentation : NSReadingOptions
Apple Documentation : dataWithContentsOfFile
Apple Documentation : dataWithContentsOfFile:options:error