Получая ошибку при попытке использовать seekToFileOffset
В настоящее время я пытаюсь прочитать строку из 5 символов со смещением в моем текстовом файле. Я почти уверен, что все работает, однако, когда я печатаю содержимое моего буфера в журнал, он выводит это <7466315c 61>
- (void)fetchCode:(id)sender{
NSData *databuffer;
NSString *path = [[NSBundle mainBundle] pathForResource:@"nCode01" ofType:@"txt"];
nCode = [NSFileHandle fileHandleForReadingAtPath:path];
if (nCode == nil) {
NSLog (@"Open of nCode for reading failed\n");
}
[nCode seekToFileOffset: 3];
databuffer = [nCode readDataOfLength: 5];
NSLog (@"Data = %@", databuffer);
[nCode closeFile];
}
Я думаю, что это может быть ошибка форматирования, а не память, так как каждый раз, когда я запускаю метод, он печатает одно и то же <7466315c 61> Любое представление о том, что я пропускаю / делаю неправильно?
1 ответ
NSData печатает свои байты как шестнадцатеричные числа в группах по 4 байта. <7466315c 61>
соответствует 5 символам "tf1\a". Вы можете использовать NSString initWithData:encoding:
чтобы преобразовать его в NSString, если это необходимо, или вы можете получить доступ к NSData's bytes
и интерпретировать их как (возможно, не завершенную) строку в стиле C.
Что именно вы ожидаете прочитать?