作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
出现故障的代码直接来自Apple的Lister示例代码:
var window: UIWindow!
...
var splitViewController: UISplitViewController {
return window.rootViewController as UISplitViewController
}
当我尝试运行代码时,出现错误:“ fatal error :在展开可选值时意外发现 nil”。通过使用断点,我可以看出在第一次运行时风仍然为零,但这对于直接示例项目来说不是问题。
由于它是在示例代码中执行的,所以我似乎在 splitview 的 subview 之一中遇到了一些问题。我考虑的是否正确?如果是,调试器中是否有一种好方法来查找正在发生的事情,或者我的问题是哪个可选?
最佳答案
[编辑:我刚刚看到这个问题的年代,但也许其他人会发现它有用]
这只是一个猜测,但您应该检查窗口和 socket 之间的界面生成器连接。并且您必须在调用 windowDidLoad 之前检查您是否访问了此函数。
如@jtbandes 所述,失败是隐式解包选项为 nil 时的预期行为。所以你必须检查窗口是否为 nil,例如通过执行以下操作:
var splitViewController: UISplitViewController {
return window?.rootViewController as UISplitViewController
}
我现在不知道如果这个函数返回 nil 会发生什么。我想您必须声明它以返回可选的 UISplitViewController 以使编译器静音。
关于xcode - 如何在我的 swift 代码中不安全地展开可选的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24685558/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!