2017-04-15 7 views
0

私はいくつかのデータでポイント配列を追加しようとしていましたが、以下に示すようなタイプのエラーがありました。何か助けを感謝します、ありがとう!タイプの値を呼び出すことができません

for i in slew { 
    var x = i[0] 
    var y = i[1] 
     pointsArray.append(Points.GetPoint(origin:Points.Point(x:x,y:y))) //Cannot invoke value of type 'Points.GetPoint.Type' with argument list '(origin: Points.Point)' 

} 


class Points: NSObject { 
    struct Point { 
     var x = Double(0.0) 
     var y = Double(0.0) 
    } 

    struct GetPoint { 
     var origin = Point() 

     var point: Point { 
      get { 
       let x = origin.x 
       let y = origin.y 
       return Point(x:x, y:y) 
      } 
     } 
    } 
} 
+1

'pointsArray'はどこで宣言されていますか? –

+0

この ' のvar pointsArray元のコードの前に行く:[Points.Point] = [] VARスルー= [ダブル]() _ 0で.. <10 { するvar subSlew =ダブル]()_ 0にするための .. <2 { subSlew.append(0)} slew.append(subSlew) を} '' – Tony

+4

構造体GetPoint'は行わないセンス – Alexander

答えて

0

これは、コードを使用すると、GetPointsで工場をやってみたかったかどうかわからない、のようになります方法ですが、これは迅速なパターンではありません。

for i in slew { 
    var x = i[0] 
    var y = i[1] 
    pointsArray.append(Points.Point(x:x,y:y)) 
} 

class Points: NSObject { 
    struct Point { 
     var x = Double(0.0) 
     var y = Double(0.0) 
    } 
} 

は、それがさらにswifty独自のポイントの代わりに CGPointを使用して、マップにのために作ることができますようにするには。

pointsArray = slew.map { CGPoint(x: $0[0], y: $0[1]) } 
+0

'CGPoint'はまだまだ私にはまだ新鮮ですが、どうもありがとうございます。それについてもっと読む必要があります。 – Tony

+0

@Alistraなぜ' class Points'内に 'struct Point'をネストするのですか? – Alexander

+0

これはOPのコードを変更しただけなので、 'CGPoint'を使うことをお勧めします。 – Alistra

関連する問題