Код на самом деле не создает новый массив, автор просто держит ссылку на объект, который уже хранится в self
. Аннотации для каждой строки приведены ниже.
Получить строку из indexPath:
NSUInteger row = [indexPath row];
Получить индекс раздела из indexPath:
NSUInteger section = [indexPath section];
Разыменовать массив в self
по индексу section
NSArray *subArray = [self objectAtIndex:section];
Если вложенный массив не является массивом, произойдет сбой:
if (![subArray isKindOfClass:[NSArray class]])
return nil;
Если строка в подмассиве больше, чем ее последний индекс, ошибка:
if (row >= [subArray count])
return nil;
Возвращает объект в подмассиве в данной строке:
return [subArray objectAtIndex:row];