动态绑定和id类型

id可以用来存储属于任何类的对象//id的用途
万能指针(内部已经包含*),能指向任何OC对象,只能使用于OC对象   id == NSObject *
但最好不要使用。
id  dataValue;没有*星号,对于id类型不能使用点运算符。
使用静态类型和id类型:
1.使用静态类型可以看定义在类中的变量调用的方法是继承的还是自己定义类中的。
2.提高程序可读性。
动态类型的参数和返回类型
先判定对象所属的类,然后在运行时确定 需要动态调用的方法,而不是在编译的时候。


如何知道实例所属的类?[mySquare class]
要查看myFract是不是Fraction类的实例,用如下语句:
[myFract isMemberOfClass: [Fraction class]]
查看对象是否能响应selector所指定的方法:
-(BOOL)respondsToSelector:Selector
要查看Fraction类的实例是否响应setTo:over:方法,可用如下语句:
[Fraction instancesRespondToSelector:@selector  (setTo:over)]
测试包括继承的方法,并不是只测试直接定义在类中的方法。
performSelector:方法和他的变体

猜你喜欢

转载自blog.csdn.net/qiangshuting/article/details/80557267
今日推荐