O-C相关-09-id 类型与应用

09-id 类型与应用

1, 使用 NSObject
访问子类对象方法

代码在编辑的时候, Xcode 会实时检查语法情况. 如果调用某个对象的方法, 在声明中没有该方法的声明, 那么就会报错.

但是对齐发消息, 是可以编译通过的. 但是运行时就不一定了.

2, id 类型

虽然可以利用发送消息执行可以调用子类方法, 但是相对较麻烦. 苹果提供了一个 id 类型, 该类型允许引用任何对象, 并且不会检查类型, 在使用的时候才会检查.

3, id 类型与 NSObject
的区别

-> NSObject 会进行编译检查

-> Id 类型只有到运行时才知道数据类型是什么

-> 但是如果 id 类型指向的对象中没有方法,也无法发消息

4,instancetype
类型

在 iOS 5.0 之后, 引入了 instancetype 类型的数据. 它和 id 类型类似

-> instancetype可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象

-> instancetype只能作为返回值,不能像id那样作为参数

版权声明:本文为博主原创文章,未经博主允许不得转载。

上一篇:SpringBoot进阶教程(二十八)整合Redis事物


下一篇:Shell脚本实现文件遍历和删除操作