NS和非NS类有什么区别?特别是NSDate vs Date? NS代表核心非NS功能的某种类型的包装器?
Swift 3引入了一些新的重叠值类型
基础类类型,例如NSDate的Date,Data for
NSData等等.完整的列表和详细信息可以在中找到
基础类类型,例如NSDate的Date,Data for
NSData等等.完整的列表和详细信息可以在中找到
> SE-0069 Mutability and Foundation Value Types
一些原因是
>提供适当的价值语义,
> let和var而不是可变的和不可变的变体,
>更多“Swifty”API.
新的覆盖类型应提供所有功能
相应的基础类型有,但如有必要,您
可以随时从一种类型转换到另一种类型.
现有的基础API
导入Swift,类型自动桥接.
关于Date和NSDate:Date是一个值类型
并且可以是常数或变量:
var date = Date() date += 10.0 // Add 10 seconds
而NSDate是一个参考类型,是不可变的.
也是日期是可比的
let date1 = Date() let date2 = Date() if date1 < date2 { }
而NSDates只能与.compare()进行比较.
备注:对于这些“覆盖类型”,值类型(struct)
如Date及其基础对象(class),如NSDate
是不同的类型,都可以从Swift使用.
不能混淆
> SE-0086 Drop NS Prefix in Swift Foundation
其中NS前缀被简单地删除为某个基础课程,例如NSBundle更名为Swift 3的Bundle.