Самый простой способ записи NSData в файл

NSData *data;
data = [self fillInSomeStrangeBytes];

Теперь мой вопрос заключается в том, как я могу написать этот data самый простой способ для файла.

(У меня уже есть NSURL file://localhost/Users/Coding/Library/Application%20Support/App/file.strangebytes)

Ответ 1

NSData имеет метод под названием writeToURL:atomically:, который делает именно то, что вы хотите сделать. Посмотрите документацию для NSData, чтобы узнать, как ее использовать.

Ответ 3

Обратите внимание, что запись NSData в файл является операцией ввода-вывода, которая может блокировать основной поток. Особенно, если объект данных большой.

Поэтому рекомендуется выполнять это на фоновом потоке, самым простым способом было бы использовать GCD следующим образом:

// Use GCD background queue
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
    // Generate the file path
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"yourfilename.dat"];

     // Save it into file system
    [data writeToFile:dataPath atomically:YES];
});