Я загружаю большой файл из своего приложения для iOS, и передача файлов происходит в режиме загрузки фрагментов. Я использую приведенный ниже код для инициализации NSInputStream для чанков.
// например
NSInteger chunkCount = 20;
for(int i=0; i<chunkCount; i++) {
NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:filePath];
[handle seekToFileOffset:(unsigned long long)i * (chunkCount == 1?fileSize:chunkSize)];
NSData *fileData = [handle readDataOfLength:chunkSize];
NSInputStream *iStream = [[NSInputStream alloc]initWithData:fileData];
}
Но я хотел бы знать, могу ли я иметь метод NSInputStream, с помощью которого я могу инициализировать iStream из диапазона файлового потока, а не NSData.
Спасибо
Существует свойство NSStreamFileCurrentOffsetKey для файловых потоков, чтобы указать смещение чтения.
NSInputStream *s = [NSInputStream inputStreamWithFileAtPath:path];
[s setProperty:offset forKey:NSStreamFileCurrentOffsetKey];
Других решений пока нет …