【发布时间】:2017-04-13 10:08:30
【问题描述】:
nil 在 Objective-C 和 Swift 中是相似但不同的概念。
在 Objective-C 中
nil 表示缺少 Objective-C 对象。
详细地说,id 是任何对象的指针。
nil 是 id,表示什么都没有。
所以,任何原始类型都不能是 nils
例如。
NSString *a = nil (o)
int a = nil (x)
在 Swift 中
nil 表示缺少任何称为可选的数据类型。
所以nil 是 Optional 的一种类型别名?
两种语言,任何nil 类型的对象都可以调用函数。
例如。
NSString *name = nil;
[a lowercaseString];
let name: String? = nil
name.lowercased()
这两种情况都不会发生空点异常。
什么都没有和没有任何类型怎么能调用一个函数呢?
【问题讨论】:
标签: objective-c swift null