创建一个空var会给我一个错误

时间:2015-09-01 02:40:07

标签: ios swift enums

我有一个enum里面有4个对象。我正在尝试创建一个变量,指向enum中的某个对象。

enum Collection:Int{
        case First=1, Second, Third, Fourth
}
var myCollection : Collection

myCollection = Collection.Second // This will happen later on.

我在类名称中收到以下错误:

  

Class' MyClassName'没有启动器

我该如何解决?

3 个答案:

答案 0 :(得分:1)

从关于此开关的其他问题开始,隐式解包变量会在使用switch语句时给出(看似)奇怪的错误消息。 (可以使用switch myCollection as Collection btw修复。)。

无论如何,对于手头的问题,扩展枚举以包含.None值可能是有意义的。并定义变量var

myCollection : Collection = .None

答案 1 :(得分:0)

将您的媒体资源更改为可选

    var myCollection : Collection?

或者给它一个默认值

    var myCollection : Collection = Collection.First

如果它不是可选的或没有默认值,则必须在启动器中初始化它。

答案 2 :(得分:0)

您需要初始化实例属性。

有很多方法可以解决这个错误。这取决于具体情况。

enum Collection: Int {
    case First = 1, Second, Third, Fourth
}

var myCollection: Collection = Collection.First

myCollection = Collection.Second

如果您想设置nil,请使用?(问号)。

enum Collection: Int {
    case First = 1, Second, Third, Fourth
}

var myCollection : Collection?

myCollection = Collection.Second

或(在这种情况下,我只使用了init()。)

enum Collection:Int{
    case First = 1, Second, Third, Fourth
}
var myCollection : Collection

init() {
    myCollection = Collection.Second 
}