这是迄今为止发生在我身上的最奇怪的事情。所以我在单元测试中有下面的代码…
let aStoryboard = UIStoryboard(name: "myStoryboard", bundle: nil)
let viewController = aStoryboard.instantiateViewControllerWithIdentifier("myViewController") as? CustomViewController
上面的代码被执行,viewController是nil,好吧,这可能发生(它不应该是,因为两个标识符都存在,文件链接到测试目标),但是是的,好吧。
下面是最疯狂的部分,当我添加一个断点时,跳过上面的行,然后在lldb
中输入以下内容viewController = aStoryboard.instantiateViewControllerWithIdentifier("myViewController") as? CustomViewController
viewController被分配内存。什么如何?如果我手动在lldb中添加这个,那么它就有内存,如果我不这样做,那么它就没有内存,并且在单元测试中为nil。
谁来帮帮我!
"viewController被分配了内存。什么如何?如果我手动在lldb中添加这个,它就有内存,如果我不这样做,它就没有内存,它在单元测试中为nil。"
在Swift中nil的含义与Objective-C不同。它不是指向NULL的指针。它只是意味着没有合适的值。swift语言中的null/nil
所以回答你的问题:nil变量有内存是很好的