__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
会自动识别当前的类型
但是还是无法得知用什么类型去接收