Как установить NSStreamFileCurrentOffsetKey? - PullRequest
0 голосов
/ 14 мая 2019

Мне нужно прочитать файл в указанном месте через местоположение файла, возвращенное сервером.Я пытался использовать NSStreamFileCurrentOffsetKey для установки начальной позиции чтения файла, но настройки отображения кода не удалось.

Код:

NSInputStream *oStream = [NSInputStream inputStreamWithData:self.fileData];
NSNumber *number = [NSNumber numberWithUnsignedLong:self.serverLength];
BOOL success = [oStream setProperty:number forKey:NSStreamFileCurrentOffsetKey];
oStream.delegate = self;
[oStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
[oStream open];

Скриншот запуска кода

Я хочу знать, почему не удается выполнить настройку и как правильно установить NSStreamFileCurrentOffsetKey.

1 Ответ

0 голосов
/ 14 мая 2019

Документация для NSStream состояний

Экземпляры NSStream, которые не основаны на файлах, не доступны для поиска, односторонние потоки

Возможны два варианта решения:

  • создать входной поток непосредственно из файла (путь) (см. Документацию по inputStreamWithFileAtPath: / inputStreamWithURL:) и установить NSStreamFileCurrentOffsetKey или
  • создать входной поток с поддиапазоном filedata: [self.filedata subdataWithRange:NSMakeRange( self.serverLength, self.filedata.length - self.serverLength)]

Какой из них более уместен, зависит от того, откуда filedata фактически получает свои данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...