Обратите внимание, что запись NSData
в файл является операцией ввода-вывода, которая может блокировать основной поток. Особенно, если объект данных большой.
Поэтому рекомендуется выполнить это в фоновом потоке, проще всего было бы использовать GCD следующим образом:
// Use GCD's 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];
});