访问静态变量并将其设置在类外

时间:2015-12-30 07:31:28

标签: ios swift static-variables

这是一个SubtitleCustomField类。

Class SubtitleCustomField: CustomCellField {
static var CellIdentifier: String!

  override init(frame: CGRect) {
  super.init(frame: frame)
  if CellIdentifier == "A" {
   //DO SOMETHINIG
  } else if CellIdentifier == "B" {
  //DO SOMETHING
  }

  }
}

在SubtitleCustomField类之外,我基本上需要访问静态变量CellIdentifier,设置类似" A"的值,并触发if语句运行。

在另一个类Custom类中,我已经确认我可以通过以下方式访问静态变量CellIdentifier:

Class Custom: CustomViewController {
     SubtitleCustomField.CellIdentifier = "part1_subtitle"
}

此时我遇到了问题。在SubtitleCustomField类中,我在if CellIdentifier == "A"上说

时收到错误
  

静态成员' CellIdentifier'不能在类型的实例上使用   ' SubtitleCustomField'

我可以用什么方法来达到我想要的效果?总之,我想在SubtitleCustomField之外设置CellIdentifier变量,并使用在SubtitleCustomField类中设置的值触发if语句。

1 个答案:

答案 0 :(得分:2)

错误消息试图告诉您正在引用类型属性(静态属性),就好像它是实例属性一样。你需要序言" CellIdentifier"用" SubtitleCustomField"在你的SubtitleCustomField初始化程序中,就像你在别处引用它一样。

override init(frame: CGRect) {
    super.init(frame: frame)
    if SubtitleCustomField.CellIdentifier == "A" {
        //DO SOMETHINIG
    } else if SubtitleCustomField.CellIdentifier == "B" {
        //DO SOMETHING
    }
}

您应始终使用类型名称后跟"来引用类型属性。"后跟属性名称。