//
// 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