Я пытаюсь получить подстроку NSString с использованием substringWithRange: NSMakeRange. Я получаю исходную строку из сохраненного словаря, сохраненная строка записывается как agent_AGENTNAME, я пытаюсь удалить часть agent_. Приведенный ниже код работает отлично (не стесняйтесь критиковать его, если он сырой), если я жесткий код числа в для NSMakeRange - как такNSMakeRange crashing app
NSString* savedAgentName = [NSString stringWithFormat:@"%@", [thisfile substringWithRange:NSMakeRange(6,19)]];
, но так как все будет, очевидно, имеют имена различной длины, мне нужно сделать это более динамично. Когда я включаю код:
NSString* savedAgentName = [NSString stringWithFormat:@"%@", [thisfile substringWithRange:NSMakeRange(6,[thisfile length])]];
сбой моего приложения. Зачем?
Вот больший кусок кода:
//get saved agents
savedAgents = [[NSMutableArray alloc] initWithObjects:@"Select An Agent", nil];
for(int f=0; f<[rootcontents count]; f++) {
NSString* thisfile = [NSString stringWithFormat:@"%@", [rootcontents objectAtIndex:f]];
if ([thisfile rangeOfString:@"agent_"].location != NSNotFound) {
int thisfilelength = [thisfile length];
NSString* savedAgentName = [NSString stringWithFormat:@"%@", [thisfile substringWithRange:NSMakeRange(6,thisfilelength)]];
//NSLog(@"%@", savedAgentName);
[savedAgents addObject:savedAgentName];
}
}
Спасибо.
Эй, я не поблагодарил вас за этот ответ, но он многое помог. +1 за то, что научил меня ловить рыбу! – PruitIgoe