У меня есть серьезная проблема с индексированием в массиве. Я работаю над этим в течение 2 дней и пока не могу найти ответ.Заменить строку между двумя строками
Я хочу это сделать, поиск определенного символа в массиве, а затем заменить его на другую строку. Я использую метод replaceObjectAtIndex, но мой код не работает.
Это мой код;
NSString *commentText = commentTextView.text;
NSUInteger textLength = [commentText length];
NSString *atSign = @"@";
NSMutableArray *commentArray = [[NSMutableArray alloc] init];
[commentArray addObject:commentText];
for (int arrayCounter=1; arrayCounter<=textLength; arrayCounter++)
{
NSRange isRange = [commentText rangeOfString:atSign options:NSCaseInsensitiveSearch];
if(isRange.location != NSNotFound)
{
commentText = [commentText stringByReplacingOccurrencesOfString:commentText withString:atSign];
[_mentionsearch filtrele:_mentionText];
id<textSearchProtocol> delegate;
[delegate closeList:[[self.searchResult valueForKey:@"user_name"] objectAtIndex:indexPath.row]];
}
}
Хорошо, теперь я могу найти знак «@» в тексте, и я могу его сопоставить. Но это источник проблемы, я не могу заменить любую строку знаком «@». Вот последняя часть кода;
-(void)closeList
{
NSArray *arrayWithSign = [commentTextView.text componentsSeparatedByString:@" "];
NSMutableArray *arrayCopy = [arrayWithSign mutableCopy];
[arrayCopy replaceObjectAtIndex:isRange.location withObject:[NSString stringWithFormat:@"@%@",username]];
}
При регистрации им isRange.location значение, она возвращает правильно. Но когда я пытаюсь запустить, мое приложение рушится. Таким образом, я не могу заменить [NSString stringWithFormat: @ "@% @", username] параметр. Как я могу решить эту проблему?
Как он падает? Вы должны включить аварийный журнал. – jrturton
Почему вы пытаетесь использовать диапазон, взятый из строкового поиска, как индекс в массив? – Wain
Нет ни одного лога. Единственное, что у меня есть, (lldb) 0x6ae8952: jae 0x6ae8962; __pthread_kill + 26. –