oc id

来源:互联网 发布:linux登陆root用户 编辑:程序博客网 时间:2024/05/22 02:05


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

 

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

 

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

 

 

2, id 类型

 

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

 

 

3, id 类型与 NSObject 的区别

 

-> NSObject 会进行编译检查

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

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

 

 

4, instancetype 类型

 

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

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

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

 

 

5, 使用 id 类型

 

通用类型(不会报错)

 

代理模式

 

 

0 0
原创粉丝点击