У меня есть эта строка:
NSString *objectkey=[NSString stringWithFormat:@"%@",[line objectAtIndex:1]];
Если objectAtIndex: 0, он работает нормально.Но если 1, то во время выполнения выдает ошибку SIGABRT.
Однако у меня есть еще одна строка, чтобы подтвердить, что массив "line" имеет объект с индексом 1:
NSLog(@"%d",[line count]);
Это возвращает 2на консоль.
Почему возникает SIGABRT, даже если там должен существовать индекс?
Что касается строки, он создается так:
for (int i=1;i<=[components count];i++){
NSArray*line=[[components objectAtIndex:(i-1)] componentsSeparatedByString:@"|"];
"строка"воссоздается во время каждой итерации цикла (я предполагаю, что это нормально? освобождение не требуется, из того, что я понимаю, используя метод «разделенных строкой»).
массив «компоненты» содержит строки, такие как:
Книги рецептов | КНИГИ
Фотографии рецептов | ФОТОГРАФИИ
Я создал этот маленький цикл, чтобы убедиться, что все строки в "строке":
for( NSObject* obj in line )
{
NSLog(@"%@",obj);
if ([obj isKindOfClass:[NSString class]]==YES) { NSLog(@"string"); }
}