NS和非NS类有什么区别?特别是NSDatevs Date?是否NS表示围绕核心非NS功能性的某种类型的包装?
Mar*_*n R 55
Swift 3 为现有的Foundation类类型引入了一些新的重叠值类型,例如Datefor NSDate,Datafor
NSData等等.完整列表和详细信息可以在中找到
一些原因是
let而var不是可变和不可变的变体,新的叠加类型应提供相应Foundation类型具有的所有功能,但如有必要,您始终可以从一种类型转换为另一种类型.
将现有的Foundation API导入Swift时,类型会自动桥接.
关于Date和NSDate:Date是一个值类型,可以是常量或变量:
var date = Date()
date += 10.0 // Add 10 seconds
Run Code Online (Sandbox Code Playgroud)
而是NSDate一个引用类型和不可变的.也Date就是Comparable
let date1 = Date()
let date2 = Date()
if date1 < date2 { }
Run Code Online (Sandbox Code Playgroud)
而NSDates只能与之比较.compare().
备注: 对于这些"叠加类型",
可以从Swift中使用值类型(struct),例如Date它的基础对应物(类),例如NSDate不同的类型和两者.不能混淆
其中NS前缀只是简单取消了对某些基础类,如NSBundle被重新命名,以Bundle对斯威夫特3.
| 归档时间: |
|
| 查看次数: |
19480 次 |
| 最近记录: |