Swift类是NSObject的子类:
- 本身就是Objective-C类
- 使用
objc_msgSend()
的调用(大部分)的方法 - 提供(大多数)方法实现的Objective-C运行时元数据
不是NSObject子类的Swift类:
- 是Objective-C类,但仅实现了少数几种方法以实现NSObject兼容性
- 不
objc_msgSend()
用于对其方法的调用(默认情况下) - 不为其方法实现提供Objective-C运行时元数据(默认情况下)
在Swift中对NSObject进行子类化可以为您提供Objective-C运行时的灵活性,同时也为您提供Objective-
C的性能。如果不需要Objective-C的灵活性,避免使用NSObject可以提高性能。
编辑:
对于Xpre 6 beta 6,将显示动态属性。这使我们可以指示Swift某个方法应使用动态分配,因此将支持拦截。
public dynamic func foobar() -> AnyObject {}


