2017-04-15 36 views
0

的值我試圖將一些數據添加到我的Point數組中,但出現了類型錯誤,如下所示。感謝任何幫助,謝謝!無法調用

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] = [] 變種擺= [[雙]]() 爲_在0 .. <10 { 變種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