nullable,nonnull, null_resettable以及_Null_unspecified的区别和使用
1.关键字:可以用于属性 方法和返回值参数中
关键字作用:提示作用 告诉开发者属性信息
关键字的目的:迎合swift 强语言,swift必须要指定一个对象是否为空
关键字好处:提高代码规划,减少沟通成本
仅仅是提供警告并不会报编译错误
nullabel作用 :提示可能为空
语法 1
@property(nonatomic ,strong ,nullabel)NSString * name;
语法 2
@property(nonatomic ,strong )NSString * _Nullabel name;
语法 2
@property(nonatomic ,strong )NSString * __nullabel name;
nonnull作用 :提示不能为空
语法 1
@property(nonatomic ,strong ,nonnull )NSString * name;
语法 2
@property(nonatomic ,strong )NSString * _Nonnull name;
语法 2
@property(nonatomic ,strong )NSString * __nonnull name;
null_resettable 作用:必须要处理为空的情况 get不能返回nil set方法可以传入为空
重写get方法
@property(nonatomic ,strong,null_resettable )NSString * name;
不可以用语法2 写法 会报错
_Null_unspecified : 不确定是否为空
很少使用
—————————
!_view 改为 _view = nil 因为swift不支持前者
补充 在宏(NS_ASSUME_NONULL_BEGIN /END)之间默认是nonnull strong
关键字不能用于基本数据类型
************************************************************************************
2.泛型
为什么要退出泛型?迎合swift
泛型好处:1.限制类型 2.提高代码规范 减少沟通成本
泛型用法:类型<限制类型>
泛型仅仅是报警告
泛型好处 从数组中取出来可以使用点语法
给数组添加元素有提示
泛型在开发中的使用场景:1.用于限制集合类型
nullable,nonnull, null_resettable以及_Null_unspecified的区别和使用的更多相关文章
- 关键字nullable,nonnull,null_resettable,_Null_unspecified详解
相信在开发过程中,很多小伙伴们儿都会见到nullable,nonnull,null_resettable,_Null_unspecified这几个关键字,但是并不知道它们是什么意思,下面我就给大家一一 ...
- iOS9的几个新关键字(nonnull、nullable、null_resettable、__null_unspecified)
1.nonnull:字面意思就能知道:不能为空(用来修饰属性,或者方法的参数,方法的返回值) 代码: //三种使用方式都可以 @property (nonatomic, copy, nonnull) ...
- 李洪强iOS经典面试题上
李洪强iOS经典面试题上 1. 风格纠错题 修改完的代码: 修改方法有很多种,现给出一种做示例: // .h文件 // http://weibo.com/luohanchenyilong/ / ...
- 招聘一个靠谱的ios
1. 风格纠错题 修改方法有很多种,现给出一种做示例: 最终改为: 下面对具体修改的地方, 2. 什么情况使用 weak 关键字,相比 assign 有什么不同? 什么情况使用 weak 关键字? 1 ...
- 招聘一个靠谱的iOS》面试题参考答案(上)
说明:面试题来源是微博@我就叫Sunny怎么了的这篇博文:<招聘一个靠谱的 iOS>,其中共55题,除第一题为纠错题外,其他54道均为简答题. 博文中给出了高质量的面试题,但是未给出答案, ...
- OC修饰词 - 内存管理
<招聘一个靠谱的 iOS>—参考答案(上) 说明:面试题来源是微博@我就叫Sunny怎么了的这篇博文:<招聘一个靠谱的 iOS>,其中共55题,除第一题为纠错题外,其他54道均 ...
- 《招聘一个靠谱的iOS》面试题参考答案(上)
说明:面试题来源是微博@我就叫Sunny怎么了的这篇博文:<招聘一个靠谱的 iOS>,其中共55题,除第一题为纠错题外,其他54道均为简答题. 博文中给出了高质量的面试题,但是未给出答案, ...
- iOS开发面试题整理 (三)
1. 风格纠错题 修改完的代码: typedef NS_ENUM(NSInteger, CYLSex) { CYLSexMan, CYLSexWoman }; @interface CYLUser : ...
- iOS面试题及答案
设计模式是什么? 你知道哪些设计模式,并简要叙述? 设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的事情. 1). MVC模式:Model View Control,把模型 视图 控制器 ...
随机推荐
- MySql 绿色版配置
1.下载MySQL http://www.mysql.com/downloads/ 2.配置my.ini # The MySQL server [mysqld] #主目录 basedir = D:/m ...
- Qt QObject
[1]Qt的QObject 1.测试代码如下: #include<QApplication> #include<QPushButton> #include<QDebug& ...
- web项目开发规范整理总结
一.类.函数.变量名命名: 1.定义类时,全部拼音的首字母必须大写:如Person,ClassDemo:(帕斯卡命名法):也可以用带下斜杆的匈牙利命名法进行命名,如 head_navigatio ...
- 学习Git的总结与体会
学习Git的总结 blog 第一次学习Git是完全按照廖雪峰老师的教程学习的,学的过程中基本上没有遇到什么问题,但是自己实际操作就问题不断了. 首先,还是按照惯例,来膜拜一下廖雪峰老师精简的教程知识吧 ...
- TRUNCATE TABLE (Transact-SQL)
删除表中的所有行,而不记录单个行删除操作. TRUNCATE TABLE 与没有 WHERE 子句的 DELETE 语句类似:但是,TRUNCATE TABLE 速度更快,使用的系统资源和事务日志资源 ...
- h5网页中使用打电话功能
如果需要在移动浏览器中实现拨打电话,发送email,美国服务器,调用sns等功能,移动手机WEB页面(HTML5)Javascript提供的接口是一个好办法. 采用url链接的方式,实现在Safari ...
- [JAVA] java class 基本定义 Note
java class 基本定义 Note 1 package abeen.note; 2 import java.util.*; 3 4 5 /* 6 java calss 基本 7 */ 8 pub ...
- jquery 获取元素背景图片backgroungImage的url
$("#").css("backgroundImage").replace('url(','').replace(')','');
- markdown 标识语言
打算改用markdown标记语言来写blog,特地收集了些相关的资料: 基本介绍: markdown 语法说明简明版 markdown 语法说明完整版 一些相应的资料: 知乎上相关的问题解答 mark ...
- JS 拼接字符串数组
1.格式1 1.1例子 [ {name: '北京',value: Math.round(Math.random()*1000)}, {name: '天津',value: Math.round(Math ...