__kindof

2016-08-28  本文已影响23人  YuWenHaiBo

** __kindof ** 表示当前类或者它的子类
好处: 在调用的时候很清楚的知道 返回类型
** __kindof ** 书写格式:
放在类型的前面:

在说__kindof之前先说说 id 和 instanceType
先创建两个对象类: Person 和 SonPerson继承Person

在Person类中实现类方法用于初始化

当我们指定返回值类型是id的时候就会出现指向不准确我们可能用了NSString字符串来接收,调用了字符串的length方法,但是person没有这个方法所以就会造成方法找不到错误

由于对象是id类型所以编译器会提供一些不是person类的方法

为了解决这个我们可以指定具体的类型,但是指定了具体类型后,用他的子类去接收的时候就会造成不兼容


为此Apple公司推出来intancetype类型

虽然不会报警告了但是还是不知道类型是什么依然不能好好使用

因此推出了__kindof

完美解决问题

// id 坏处 :
      1. 不能在编译的时候检测真实的类型
      2.  返回值,没有提示        
      3. id类型的对象调用的方法的时候提示的不准确
 // instanceType 
     会自动识别当前的类型
    但是还是无法得知用什么类型去接收

上一篇下一篇

猜你喜欢

热点阅读