将元组分配给数组

时间:2017-05-02 07:31:34

标签: swift struct append tuples

我试图按照以下代码简单地将一个元组附加到数组中;

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
    }
}

有人可以写下如何解决这个案子吗?

3 个答案:

答案 0 :(得分:1)

您必须初始化您正在创建的Properties类型的新属性:

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

此外,CGPoint的初始值设定项为xy

考虑一下你是否真的希望Properties只有一个属性,其所有字段都使用元组,或者如果最好有类似的东西:

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

答案 1 :(得分:0)

您的数组采用Properties struct而不是元组的实例。 尝试创建新实例Properties.init(properties: (coordinatesXY: CGPoint(0,0), radius: circleRadius, group: "test", fillingColor: mainThemeColor)),然后将其添加到数组

答案 2 :(得分:0)

试试这个,

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