大佬教程收集整理的这篇文章主要介绍了如何注释用于Swift中的Objective-C API(例如返回类型),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Xcode 6.3增加了在Objective-C中注释可空性的官方支持.
可空
可以通过使用关键字__nullable,__nonnull和__null_unspecified(默认值)注释类型来声明值的可空性.在属性和方法中,这些关键字是可空的,非空的和null_unspecified的.
Xcode发行说明中的示例
- (void)registerNib:(nonnull UINib *)nib forCellReusEIDentifier:(nonnull NSString *)identifier; - (nullable UITableViewCell *)cellForRowATindexPath:(nonnull NSIndexPath)indexPath; @property (nonatomic,readwrite,retain,nullablE) UIView *BACkgroundView;
更改默认值
null_unspecified(其转换为T!)是所有现有代码的默认值.一个有用的功能是更改API部分的默认值.
NS_ASSUME_NONNULL_BEGIN // nonnull is the default here NS_ASSUME_NONNULL_END
这消除了很多噪音,因为接受和处理nil的方法通常是异常,而不是规则.就个人而言,我会将此用于所有经过审核的API.
null_resettable
null_resettable是一个额外的注释,用于不常见的情况,您可以将属性设置为nil,但不会为零(因为它将重置为默认值).
@property (nonatomic,null_resettablE) UIColor *TintColor;
就个人而言,我会避免这个新代码的行为.这种性质的混合性质并不适合Swift.
Xcode 7 / Swift 2(Beta)
Xcode 7增加了在Objective-C中注释通用类型的支持.
集合的通用类型注释
NSArray,NSSet和NSDictionary(自动桥接到Swift的数组,集合和字典)可以使用其内容的类型进行注释.
@property NSArray<NSString *> *StringArray; @property NSSet<NSString *> *StringSet; @property NSDictionary<NSString *,NSString *> *StringDict;
还有一个__kindof关键字告诉Objective-C编译器不那么严格,并允许下载.但它并不影响Swift方面.
自定义类的通用类型注释
@interface MyArray1<__covariant T> : NSObject - (void)addObject:(T)object; @end @interface MyArray2<__covariant T : NSObject *> : NSObject - (void)addObject:(T)object; @end @interface MyArray3<__covariant T : id<NSCopying>> : NSObject - (void)addObject:(T)object; @end
@implementation不知道T,并使用id / NSObject * / id< NSCopying>像往常一样.
以上是大佬教程为你收集整理的如何注释用于Swift中的Objective-C API(例如返回类型)全部内容,希望文章能够帮你解决如何注释用于Swift中的Objective-C API(例如返回类型)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。