【问题标题】:Assigning tuple to an array将元组分配给数组
【发布时间】:2017-09-29 15:45:08
【问题描述】:

我正在尝试按照下面的代码简单地将一个元组附加到一个数组中;

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

谁能写出如何解决这个案子?

【问题讨论】:

    标签: swift struct append tuples


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      这样试试,

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

      【讨论】:

        【解决方案3】:

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

            circleCollection.append(Properties(properties: (coordinatesXY: CGPoint(x: 0, y: 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
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-01-10
          • 2022-12-07
          • 2010-10-29
          • 2019-07-22
          • 1970-01-01
          • 2015-12-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多