2017-05-02 18 views
-1

以下のコードに従ってタプルを単純に配列に追加しようとしています。タプルを配列に割り当てる

class Test: UIView { 
    let circleRadius: CGFloat = 10 
    let mainThemeColor: UIColor = UIColor.green 
    struct Properties { 
     var properties: (coordinatesXY: CGPoint, radius: CGFloat, group: String, fillingColor: UIColor) 
    } 

    var circleCollection: [Properties] = [] 

    func setProperties() { 
     circleCollection.append(coordinatesXY: CGPoint(), radius: circleRadius, group: "test", fillingColor: mainThemeColor) 
     //Error Extra argument 'radius' in call 
    } 
} 

ケースを解決する方法はありますか?

答えて

1

を新しいインスタンスProperties.init(properties: (coordinatesXY: CGPoint(0,0), radius: circleRadius, group: "test", fillingColor: mainThemeColor))を作成してみてくださいとまた、CGPointのイニシャライザには、xyがあります。

何か持っている方が良いでしょう場合は、実際にPropertiesはタプルを使用して、すべてのフィールドを持つ唯一の1プロパティを持つようにしたい場合は考えてみましょう、または:

struct Properties { 
     let coordinatesXY: CGPoint 
     let radius: CGFloat 
     let group: String 
     let fillingColor: UIColor 
} 
0

配列には、Propertiesのインスタンスがあり、タプルはありません。

circleCollection.append(Properties(properties: (coordinatesXY: CGPoint(x: 0, y: 0), radius: circleRadius, group: "test", fillingColor: mainThemeColor))) 

: あなたが作成しているPropertiesタイプの新しいプロパティを初期化する必要があり、

0

はこのようにしてみ配列に追加し、その後

func setProperties() { 
     let tuple = Properties.init(properties: (coordinatesXY: CGPoint.zero, radius: circleRadius, group: "test", fillingColor: mainThemeColor)) 
     circleCollection.append(tuple) 
    }