Swift:嵌套的Optionals

时间:2015-09-01 17:49:43

标签: ios macos swift

我是一个相当缺乏经验的程序员(之前主要是AppleScript),接受学习Swift的任务 - 所以请轻轻一点!

我试图在可选的类实例中设置一个可选的实例变量。如果我将实例变量设置为值,是否会自动将类实例设置为非零值?我不猜,因为我没有......

这里有一些简化的代码:

    class exampleClass
    {
        var optionalString: String?
    }


    var theNewInstance = exampleClass?()

    theNewInstance?.optionalString = "dave"



    let theTest1 = theNewInstance?.optionalString!

    println ("theTest1 is: \(theTest1)") // Prints 'theTest1 is: nil'

我已经浏览了Swift Optional of Optional,但我还没有获得此协议业务......将继续关注斯坦福CS193P视频...

我显然不理解一些相当基本的东西 - 有人可以开导我吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

var theNewInstance = exampleClass?()正在创建一个初始值为nil的可选项。它与var theNewInstance : exampleClass? = nil基本相同。

在设置内部属性之前,您需要实际创建一个非零实例:

theNewInstance = exampleClass()

或者,如果您只是在声明它的时候进行初始化,那么就不要让它成为可选项。