var collegeNames : String!
struct collegeName {
static var clgName = collegeNames()
}
我收到以下错误:
“实例变量'collegenames'不能用于'ViewController'类型”
答案 0 :(得分:1)
我想你想要创建一个Singleton,但是你在collegeNames
中输入了一个拼写错误,你需要用var
替换let
,替换这一行:
static var clgName = collegeNames()
使用:
static let clgName = collegeName()
答案 1 :(得分:0)
问题在于collegeNames()
是不连贯的。您不能通过括号跟随变量名称;没有意义。
如果你删除了括号,你就可以编译;但结果虽然会编译,但仍然是一件非常愚蠢的事情,因为你不能给static var
一个动态值;其值始终为nil
,因为这是collegeNames
的值。
如果目标是实现单例,则完全删除collegeNames
并将静态属性初始化为collegeName()
。您还可以使用let
,而不是var
。只要您遵守大写惯例,整个模式就会大大澄清:
struct CollegeName {
static var clgName = CollegeName()
}
这是Swift中的标准单例模式。