标签:
// // ViewController.m // 01-iOS9新特性之常见关键字 // // Created by kun on 16/8/16. // Copyright © 2016年 kun. All rights reserved. // /* nullable:1,怎么使用(语法)2,什么时候使用(作用) nullable作用:可能为空 关键字目的:迎合swift,swift是个强语言,swift必须指定一个对象是否为空 关键字好处:提高代码规范,减少沟通成本 nullable 语法1 @property (nonatomic, strong, nullable) NSString *name; nullable 语法2 @property (nonatomic, strong) NSString *_Nullable name; nullable 语法3 @property (nonatomic, strong) NSString *__nullable name; */ /* nonnull:1,怎么使用(语法)2,什么时候使用(作用) nonnull作用:不能为空 nonnull 语法1 @property (nonatomic, strong, nonnull) NSString *name; nonnull 语法2 @property (nonatomic, strong) NSString *_Nonnull name; nonnull 语法3 @property (nonatomic, strong) NSString *__nonnull name; null_resettable nonnull */ /* null_resettable:1,怎么使用(语法)2,什么时候使用(作用) null_resettable:必须处理为空的情况,重写get方法 null_resettable作用:get方法不能为空, set可以传入为空 关键字目的:迎合swift,swift是个强语言,swift必须指定一个对象是否为空 关键字好处:提高代码规范,减少沟通成本 语法1 @property (nonatomic, strong, null_resettable) NSString *name; */ /* _Null_unspecified:不确定是否为空 */ /* 在下面两个宏之间的属性默认为nonnull NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END */ #import "ViewController.h" @interface ViewController () // nullable // nonnull // null_resettable 处理为空的情况 @property (nonatomic, strong, null_resettable) NSString *name; //@property (nonatomic, strong) NSString *_Nullable name; //@property (nonatomic, strong) NSString *__nullable name; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; } - (NSString *)name { if ( _name == nil ) { _name = @""; } return _name; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
标签:
原文地址:http://www.cnblogs.com/fkunlam/p/5775058.html