Искать положение файла в Objective-C - PullRequest
0 голосов
/ 05 мая 2011

Что является эквивалентом в Objective-C этого кода C:

FILE* file = fopen( [filePath UTF8String], "r, ccs=UTF-8");
if (file != 0)
{
    char buffer[1024];
    //seek to file position....
    fseek(file,11093, SEEK_CUR);
    int cnt = 0;
    while(fgets(buffer, 1024, file) != NULL)
    {   
        if (cnt>0) {
            if(buffer[0] == 'a') {
                break;
            }
            //Objective c syntax....
            NSString *string = [[NSString alloc] initWithCString: buffer];
         }
        cnt++;
    }
    fclose(file);
}

1 Ответ

3 голосов
/ 05 мая 2011

То, что является эквивалентом.Objective-C построен поверх C, поэтому каждая функция C может использоваться в Objective-C.

Существует иерархия классов с корнем в NSStream, которая, на первый взгляд, может показаться Objective-C версия файловых потоков - и для многих целей это так.Но если вам нужно искать в произвольном потоке, вам следует продолжать использовать fopen(), fseek() и т. Д.

Экземпляр NSInputStream, созданный из пути к файлу на диске, будетбыть доступным путем получения / установки его свойства NSStreamFileCurrentOffsetKey.Однако часто бывает неудобно адаптировать существующий код на основе FILE *.

Полагаю, я хочу сказать, что, если fopen() работает для вас, нет необходимости прекращать его использование.:)

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