首先__kindof:规定参数为UITableViewCell(举例)这个类或者其子类。比如说一个NSArray<UIView *>*,如果不加__kindof,这个数组只能有UIView,即便是其子类也不行。而加了的话,传入UIImageView或者UIButton之类的不会有问题。
__typeof会返回对应的类型。

if marked as __kindof,  that the compiler won't complain if you try to access ones of its elements, and store the result in a variable who's type is UIView or one of its subclasses.

参考链接:

1.https://happyteamlabs.com/blog/how-to-use-__kindof-in-objective-c/

2.https://stackoverflow.com/questions/31399208/ios-kindof-nsarray/33013094#33013094

3.http://www.jianshu.com/p/3f73e696dd4d

4.http://www.itstrike.cn/Question/b06eefce-1d13-4ace-a8db-a93e36fe2634.html

5.https://www.infoq.com/articles/whats-new-ios9-swift-objc

ios9 新关键字 __kindof 等(etc) 小结的更多相关文章

  1. 教你轻松看懂 iOS9 新功能

    2015苹果全球开发者大会在6月9日凌晨,美国旧金山举行,fir.im 整理了一部分的资料,帮助了解 iOS9 的新特性与功能,感兴趣的可以看下. 关于iOS9新增功能 在WWDC 2015上苹果介绍 ...

  2. iOS9新特性——堆叠视图UIStackView

    一.引言 随着autolayout的推广开来,更多的app开始使用自动布局的方式来构建自己的UI系统,autolayout配合storyBoard和一些第三方的框架,对于创建约束来说,已经十分方便,但 ...

  3. ios9适配系列教程——ios9新变化

    Demo1_iOS9网络适配_改用更安全的HTTPS iOS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采用TLS 1.2 协议,目的是 强制 ...

  4. Java关键字transient和volatile小结(转)

    Java关键字transient和volatile小结(转) transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶的话题,简单总结一下. tran ...

  5. IOS9新特性之Contacts联系人

    在以前iOS开发中,涉及联系人相关的编程,代码都非常繁琐,并且框架的设计也不是Objective-C风格的,这使开发者用起来非常的难受.在iOS9中,apple终于解决了这个问题,全新的Contact ...

  6. iOS9新特性

    本文主要是说一些iOS9适配中出现的坑,如果只是要单纯的了解iOS9新特性可以看瞄神的开发者所需要知道的 iOS 9 SDK 新特性.9月17日凌晨,苹果给用户推送了iOS9正式版,随着有用户陆续升级 ...

  7. Xcode And iOS9新特性

    Xcode And iOS9 1. Xcode7 新特性 > 可直接在真机上运行自己的应用,只需要有苹果账号,无需购买苹果开发者账号. > 可设置在出现 EXC_BAD_ACCESS 错误 ...

  8. iOS9新特性之泛型

     iOS9新特性之泛型 作用:限制类型 好处:1.提高开发规范,减少程序员之间的交流 2.通过集合取出来的对象,直接当作泛型对象使用,可以直接使用点语法(id类型不能使用点语法) 使用场景: 1.在集 ...

  9. 利用ABAP 740的新关键字REDUCE完成一个实际工作任务

    ABAP 740从2013年发布至今已经过去很长的时间了,下面这张图来自SAP社区博客: ABAP News for Release 7.40 – What is ABAP 7.40? 图中的ABAP ...

随机推荐

  1. php memcached+Mysql(主从)

    /* index.php   程序入口,用来构造sql(如查询,更新) config.php  配置参数(memcache,mysql) init.php    封装memcached操作(memca ...

  2. Sql Server (错误:7302)

    windows server 2008 x64 sql server 2008 r2 OraClient 11g 错误提示: 解决办法:

  3. CloudFoundry虚拟机实例配置DNS

    使用Bosh成功部署CloudFoundry后,在OpenStack上启了一个实例作为DNS服务器专用,配置域名mycloud.com解析到CF API接口的IP:10.68.19.134,然后使用C ...

  4. CAS-ticket not recognized

    描述:项目用单点登陆后,在页面中刷新时报错,错误信息如下: Servlet.service() for servlet default threw exception: org.jasig.cas.c ...

  5. 两行代码实现微信小程序联系人sidebar

    话不多说,先给你们看看核心数据和结构: 一.数据: city的json array,letter的array (city的json array里的首字母是我手工放置进去的,你也可以通过for循环获得c ...

  6. ASP.NET Zero--10.一个例子(3)商品分类管理-新建

    1.打开Index视图 页面中添加一个按钮,代码如下: <div class="row margin-bottom-5"> <div class="co ...

  7. ASP.NET Zero--7.控制器加权限

    上次已经实现了菜单权限的配置,达到了不同角色的用户显示不同的菜单.但这里还有BUG,如果你直接访问http://localhost:8019/Mpa/Test这个控制器时,并使用"Defau ...

  8. quagga源码分析--大内总管zebra

    zebra,中文翻译是斑马,于是我打开了宋冬野的<斑马,斑马>作为BGM来完成这个篇章,嘿嘿,小资一把! zebra姑且戏称它是quagga项目的大内总管. 因为它负责管理其他所有协议进程 ...

  9. 修改linux默认ssh 端口

    修改ssh的默认端口 1.编辑ssh配置文件: #vi /etc/ssh/ssh_config                  #vi /etc/ssh/sshd_config            ...

  10. 自己通过centos6.5配置NFS 成功后的笔记,希望对需要的人有点点帮助吧!

         环境介绍:            服务器:centos  172.16.250.170            客户端:centos  172.16.250.172     先用rpm -qa ...