aStoryboard.instantiateViewControllerWithIdentifier( "myid" ) 在 lldb 中返回 nil 但不返回 nil



这是迄今为止发生在我身上的最奇怪的事情。所以我在单元测试中有下面的代码…

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变量有内存是很好的

相关内容

  • 没有找到相关文章

最新更新