iOS9开始的新特性
nonnull__nonnull:
setter 和 getter 都不能为nilnullable__nonnullable :
setter 和 getter 都可以为nilnull_resettable :
setter可以为nil, getter不可以为nilNS_ASSUME_NONNULL_BEGIN \ NS_ASSUME_NONNULL_END
之间的所有属性默认都是nonnull泛型__contravariant__covariant
__covariant : 小类型(泛型类的子类类型) -> 大类型(泛型类的父类类型)
__contravariant : 大类型(泛型类的父类类型) -> 小类型(泛型类的子类类型)__kindof
例如:告诉编译器返回值可能是NSString,也可能是NSMutableStringUIWindow
Storyboard Reference
UIStackView
Search API
3D touch