我试图Array在Swift 3.1.1中进行扩展,该扩展支持将对象添加到2D数组中的某个索引,即使该数组尚未填充.扩展还应该提供获取对象的能力indexPath.我在Swift 2中有这个代码,但我似乎无法将它迁移到Swift 3.这是Swift 2代码:
extension Array where Element: _ArrayProtocol, Element.Iterator.Element: Any {
mutating func addObject(_ anObject : Element.Iterator.Element, toSubarrayAtIndex idx : Int) {
while self.count <= idx {
let newSubArray = Element()
self.append(newSubArray)
}
var subArray = self[idx]
subArray.append(anObject)
}
func objectAtIndexPath(_ indexPath: IndexPath) -> Any {
let subArray = self[indexPath.section]
return subArray[indexPath.row] as Element.Iterator.Element
}
}
Run Code Online (Sandbox Code Playgroud)
代码来自这个答案.