У меня есть функция, которая вызывается при получении данных от сетевого подключения. Я добавляю эти данные в файл внутри сериализованной очереди отправки. У меня был объект NSFileHandle (здесь он называется «файл»), область которого такова, что он указывает на другой файл перед выполнением отправки, а также файл был закрыт в другом месте. Таким образом, я создал новый NSFileHandle (названный здесь "_file") для своего закрытия отправки следующим образом -
if (autoDownloadFileWrite == nil) {
autoDownloadFileWrite = dispatch_queue_create("com.myqueue.autodownfilewrite", DISPATCH_QUEUE_SERIAL);
}
char Path[MAXPATHLEN];
//getting file path
if (file && fcntl([file fileDescriptor], F_GETPATH, Path) != -1)
NSLog(@"%@", [NSString stringWithUTF8String:Path]);
//creating new file handle from file path
NSFileHandle* _file = [NSFileHandle fileHandleForUpdatingAtPath:[NSString stringWithUTF8String:Path]];
//writing into file in dispatch
dispatch_async(autoDownloadFileWrite, ^{
if (_file) {
[_file seekToEndOfFile];
}
[_file writeData:data];
});
Хорошо ли создавать несколько NSFileHandle для одного файла?
Также я не закрываю файл, это плохо?
Если мой вопрос относится к codereview.stack ... просто прокомментируйте, я добавлю его туда.