2D配列を扱えるように、配列型に拡張をしようとしています。実際、Objective-Cでこれを行い、以下のコードは魅力的に機能しました。しかし、私は本当にスウィフトにこだわりました。Swift 2D Array Extension Error
extension Array {
mutating func addObject(anObject : AnyObject, toSubarrayAtIndex idx : Int) {
while self.count <= idx {
let newSubArray = [AnyObject]()
self.append(newSubArray)
}
var subArray = self[idx] as! [AnyObject]
subArray.append(anObject)
}
func objectAtIndexPath(indexPath : NSIndexPath) -> AnyObject {
let subArray = self[indexPath.section] as! Array
return subArray[indexPath.row] as! AnyObject
}
}
私は関係なく、私は何をすべきかのサンプルコードで言及しないエラーが発生します。私はどんな助けにも感謝しています。ありがとう。ローマSausarnesへ
UPDATEのおかげ
正しいコードは以下です:あなたは配列要素の型が延長にあるもの言う必要が
extension Array where Element: _ArrayType, Element.Generator.Element: AnyObject {
mutating func addObject(anObject : Element.Generator.Element, toSubarrayAtIndex idx : Int) {
while self.count <= idx {
let newSubArray = Element()
self.append(newSubArray) // ERROR: Cannot invoke 'append' with an argument list of type '([AnyObject])'
}
self[idx].append(anObject)
}
func objectAtIndexPath(indexPath: NSIndexPath) -> AnyObject {
let subArray = self[indexPath.indexAtPosition(0)]
return subArray[indexPath.indexAtPosition(1)] as Element.Generator.Element
}
}
あなたは素晴らしいです!それは働いたが、私は実際にその_ArrayTypeとGeneratorのすべてを取得していませんでした。私は推測することがたくさんあります:) –
実際、addObjectメソッドの最後の2行にはエラーがあります。 addObjectメソッドの最後の行は次のようになります:\t \t self [idx] .append(anObject) –
私はSwift 3で助けが必要だと思っています:) –