Я пытаюсь решить общую ситуацию получения большого объема данных от веб-сервисов через:
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
Для небольших данных я просто использую:
[webData appendData:data];
и в конце:
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
Я записываю его в свой файл, используя поток вывода.
Как насчет того, когда данные огромны, пара МБ данных? В этом случае было бы лучше сбросить данные из connection:didReceiveData:
несколько раз в один и тот же файл. Звучит просто, используя NSFileHandle
, но синхронизация для чтения и записи с учетом асинхронного / неблокирующего интерфейса не является простой (по крайней мере, для меня).
Есть идеи, что было бы хорошим подходом для этого случая?
Я думал использовать NSThread
, каждый раз помещая в очередь размер куска. Есть ли лучший / легкий подход для этого?