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,把模型 视图 控制器 ...
随机推荐
- 依赖注入(DI)和Ninject,Ninject
我们所需要的是,在一个类内部,不通过创建对象的实例而能够获得某个实现了公开接口的对象的引用.这种“需要”,就称为DI(依赖注入,Dependency Injection),和所谓的IoC(控制反转,I ...
- 005_重写 Standard Delete Button
以后会用JS直接删除,但是在加载.js时候出现问题,会在以后进一步追踪完善: <apex:page standardController="Opportunity" > ...
- MFC编辑框字体大小调节(转)
在学习MFC中需要调整编辑框中的字体大小,以下是我结合网上与自己实际操作总结的,希望对其它同学有所帮助. 首先,了解以下函数原型:BOOL CreateFont( int nHeight, ...
- MySQL时间段查询
现实中我们会遇到统计报表.比如查询当月每一天的数据数量...等等之类的.以下内容就是有关这方面的咯. 首先要知道几个函数 mysql> select now(); //这个是显示的当前时间 +- ...
- Java8函数式编程
在Java8的 java.util.function中包含以下几个接口 1.Function,先上源码 /* * Copyright (c) 2010, 2013, Oracle and/or its ...
- 初学者-微信小程序 问题解决办法记录
1.tabBar不显示的问题 1),检查大小写 2),pagePath路径书写,和pages路径一样,不能多或者少一个"/"或者"?" 2.tabBar和nav ...
- http常见状态码解析
自定义 Ajax原生编写ajax:function(opt){ var xmlhttp; //创建对象 if (window.XMLHttpRequest){// code for IE7+, Fir ...
- sql常用单行函数
学到数据库了,小记一下的喽~~~>>>>常用的单行函数 select * from employees 查询所有 select first_name,lower(first_n ...
- ffmpeg centos6.5上安装(测试 amr 转换为 mp3)
1. 下载相关源码包 wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz wget http://sourcefo ...
- 如何静态添加toolbar到datagrid
这个示例向你展示如何添加toolbar到datagrid. 创建 DataGrid <table id="tt" class="easyui-datagrid&qu ...