gpt4 book ai didi

ios - 访问静态变量并在类外设置它

转载 作者:行者123 更新时间:2023-11-28 12:58:04 26 4
gpt4 key购买 nike

这是一个 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" 的错误信息

Static member 'CellIdentifier' cannot be used on instance of type 'SubtitleCustomField'

实现我想要的目标的最佳方法是什么?总之,我想在 SubtitleCustomField 之外设置 CellIdentifier 变量,并使用我在 SubtitleCustomField 类中设置的值触发 if 语句。

最佳答案

错误消息试图告诉您您正在引用一个类型属性(静态属性),就好像它是一个实例属性一样。您需要在 SubtitleCustomField 初始值设定项中使用“SubtitleCustomField”作为“CellIdentifier”的前缀,就像您在其他地方引用它时所做的那样。

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

您应该始终使用类型名称后跟“.”来引用类型属性。后跟属性名称。

关于ios - 访问静态变量并在类外设置它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34524967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com