__kindof 是关键字,用来修饰Objective对象,在iOS系统的泛型和函数的返回值类型中目前已被大范围使用;
而为什么会被大量使用,主要有以下原因:
1.函数返回值等数据类型一般如果使用id,无法在编译期确定返回值的类型。往往为了防止报错,接口调用者需要做额外的判断和保护处理,导致接口十分不友好;在使用关键字__kindof修饰可以很好地在编译期就做到返回值的类型检查。
2.如果返回值是id类型,无法使用点语法。
3.使用__kindof代表返回值类型接受是这个类或者是这个类的子类;