Так другие ответы определить, что индексирование в целом, но из названия вашего поста, я предполагаю, что вы спрашиваете, что линия
return self[indexPath.section][indexPath.row]
делает.
Это довольно просто, он применяет индекс к self
, а затем еще один индекс результата. Эта функция
public subscript(indexPath: NSIndexPath) -> BaseRow {
return self[indexPath.section][indexPath.row]
}
определяет индекс на NSIndexSet
с точки зрения других уже определенных индексов. section
свойство NSIndexSet
является ИНТ, и вы увидите, что класс Form определяет индекс на Int
в этом расширении:
extension Form : MutableCollectionType {
// MARK: MutableCollectionType
public var startIndex: Int { return 0 }
public var endIndex: Int { return kvoWrapper.sections.count }
public subscript (position: Int) -> Section {
get { return kvoWrapper.sections[position] as! Section }
set { kvoWrapper.sections[position] = newValue }
}
}
Так self[indexPath.section]
возвращает Section
объект, который затем индексируются другим междунар (indexPath.row
) для возврата BaseRow
(см. ниже, чтобы увидеть индекс Int
на Section
).