NS和非NS类之间有什么区别?特别是NSDatevs Date?是否NS代表围绕核心非NS功能性的某种包装器?
NSDate
Date
NS
Swift 3 为现有Foundation类类型引入了一些新的 覆盖值类型 ,例如Datefor NSDate,Datafor NSData等。完整列表和详细信息可以在下面找到
Data
NSData
一些原因是
let
var
新的叠加层类型应提供相应基础类型具有的所有功能,但是,如有必要,您始终可以从一种类型转换为另一种类型。
将现有的Foundation API导入Swift时,类型会自动桥接。
关于Date和NSDate:Date是值类型,可以是常量或变量:
var date = Date() date += 10.0 // Add 10 seconds
而是NSDate引用类型且不可变。也Date就是Comparable
Comparable
let date1 = Date() let date2 = Date() if date1 < date2 { }
而NSDates只能与进行比较.compare()。
.compare()
备注: 对于这些“覆盖类型”,值类型(结构)(例如)Date和与之对应的基础NSDate 类型(类)(例如)是不同的类型,并且都可以在Swift中使用。请勿将其与
其中NS前缀只是简单取消了对某些基础类,如NSBundle被 重新命名 ,以Bundle对斯威夫特3。
NSBundle
Bundle