在苹果文档TN2151说,这对于一个可能的原因EXC_BREAKPOINT/ SIGTRAP:
具有nil值的非可选类型
但是像这样的代码将无法编译:
var x = "hello"
x = nil
Run Code Online (Sandbox Code Playgroud)
那么在什么情况下可以非选择性地获得一个nil值?
JAL*_*JAL 20
在与Swift桥接的Objective-C中考虑这样的事情:
- (NSObject * _Nonnull)someObject {
return nil;
}
Run Code Online (Sandbox Code Playgroud)
该函数注释为_Nonnull,但将返回nil.这作为Swift的非可选对象桥接并将崩溃.
被诅咒但可能:
class C {}
let x: C? = nil
let y: C = unsafeBitCast(x, to: C.self)
print(y) // boom
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1132 次 |
| 最近记录: |