__kindof的用法
简介:
_kindof是苹果声明的一个新特性
使用方法如下:
正常我们声明一个属性:
@property (nonatomic,strong) NSArray *viewArray;
看属性我们知道viewArray是一个存储UIView的数组,但是不能保证这个元素就是UIView,除非我们阅读完整的代码才会知道。
这种情况下我们通过泛型声明这个数组
@property (nonatomic,strong) NSArray<UIView *> *viewArray;
这样我们就知道了声明的viewArray是一个存储UIView类型的数组,如果赋值为UIButton或者UIWebView这样的子类型时,编译则会报警告⚠️
为了解决这个问题,__kindof应运而生
@property (nonatomic,strong) NSArray<__kindof UIView *> *viewArray;
用这种结构声明的viewArray,确保这个数组可以包含UIView以及UIView的子类型
我们要尽可能多的使用像__kindof这样苹果的新特性,是代码更加严谨,这样对我们的代码和应用大有益处。
__kindof的用法的更多相关文章
- RunTime的一些用法
RunTime的一些用法 RunTime简介 RunTime简称运行时.OC就是运行时机制,其中最主要的是消息机制 对于OC来说,在编译的时候并不能决定真正调用哪个函数,只有真正运行时才会根据函数 ...
- ios开发ios9新特性关键字学习:泛型,逆变,协变,__kindof
一:如何去学习?都去学习什么? 1:学习优秀项目的设计思想,多问几个为什么,为什么要这么设计,这么设计的好处是什么,还能不能在优化 ,如何应用到自己的项目中 2:学习优秀项目的代码风格,代码的封装设计 ...
- EditText 基本用法
title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...
- jquery插件的用法之cookie 插件
一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...
- Java中的Socket的用法
Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...
- [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法
一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...
- python enumerate 用法
A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...
- [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...
- 【JavaScript】innerHTML、innerText和outerHTML的用法区别
用法: <div id="test"> <span style="color:red">test1</span> tes ...
随机推荐
- 简单生成随机数id的方法
近期项目中需要生成不同的id,之前都是使用UUID来实现的,现在需求是只要8位数的,也就是说用户量是有限的,暂时是不需要太多的,所以就简单的使用Set实现了这一功能. /** * 生成8位不重复随机i ...
- 三、MyBatis-全局配置文件
XML 映射配置文件(官方结构) MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置(settings)和属性(properties)信息.文档的顶层结构如下: configura ...
- ThinkPhp view 路径用到的常量 __STATIC__ __JS__ __CSS__等
https://www.edoou.com/articles/1556848583530922 ThinkPHP5.1 里面__PUBLIC__无法生效的问题 在用PHP模板的时候需要引用外部的样式文 ...
- mpvue实现微信小程序(欢迎踩坑)
最近刚使用mpvue完成了微信小程序的开发,写点东西,做个记录. 首先依旧是两个传送门: 微信小程序文档:[https://developers.weixin.qq.com/miniprogram/d ...
- 神仙dcx出的一道题
题目大意 \(\;\;\)在一个坐标系上, 以\((0, 0)\)为起点, 每走一步,可以从\((x,y)\)走到\((x+1,y),(x-1,y),(x,y+1),(x,y-1)\)中的一个点上, ...
- [洛谷 P1377] TJOI2011 树的序
问题描述 众所周知,二叉查找树的形态和键值的插入顺序密切相关.准确的讲:1.空树中加入一个键值k,则变为只有一个结点的二叉查找树,此结点的键值即为k:2.在非空树中插入一个键值k,若k小于其根的键值, ...
- IO流之RandomAccessFile和File
通过学习一些经典案例来复习基础 ------------------------------------------------------------------------------------ ...
- Netty模型
- REST服务地址
https://www.cnblogs.com/loveis715/p/4669091.html https://www.cnblogs.com/duanxz/p/4384454.html REST服 ...
- js常见的几种设计模式
一.单例模式 单例模式也称作为单子模式,更多的也叫做单体模式.为软件设计中较为简单但是最为常用的一种设计模式. 在JavaScript里,实现单例的方式有很多种,其中最简单的一个方式是使用对象字面量的 ...