Метод substringWithRange:
вызовет (как утверждают документы) исключение NSRangeException «если какая-либо часть aRange находится за пределами конца получателя».
Запрашивая символы этой длины, начиная с 6-й позиции в этом файле, вы пересекаете конец строки, что приводит к исключению.
Вам необходимо уменьшить запрошенную длину на 6, например так:
NSString *savedAgentName = [NSString stringWithFormat:@"%@",
[thisfile substringWithRange:NSMakeRange(6,thisfilelength-6)]];
Кстати, этот код можно упростить до:
NSString *savedAgentName =
[thisfile substringWithRange:NSMakeRange(6,thisfilelength-6)];
Однако, поскольку вы хотите, чтобы вся остальная часть строки была из определенного индекса, это можно еще больше упростить, используя substringFromIndex:
:
NSString *savedAgentName = [thisfile substringFromIndex:6];
Обратите внимание, что во всем приведенном выше коде предполагается, что строка имеет по крайней мере6 символов.Для безопасности убедитесь, что длина этого файла составляет 6 или больше, прежде чем получить подстроку.Если длина не превышает 6 символов, вы можете установить значение для записанного значения для параметра AgentAame пустым.