解析Objective-C中多态、动态类型和动态绑定

移动开发 iOS
Objective-C中多态、动态类型和动态绑定是本文要介绍的内容,主要是俩学习Objective-C中的一些相关的内容,从而来学习Objective-C的使用方法,具体内容来看详细内容讲解。

Objective-C多态、动态类型动态绑定是本文要介绍的内容,主要是俩学习Objective-C中的一些相关的内容,从而来学习Objective-C的使用方法,具体内容来看详细内容讲解。

一、多态

相同的名称、不同的类。使不同的类共享相同的方法名称的能力。

二、动态绑定和id类型

id——通用的对象类型,可以用来存储属于任何类的对象。如:id dataValue;(不用加*号)

三、编译时和运行时检查

存储在id变量中的对象类型在编译时无法确定,所以一些测试推迟到运行时进行。

四、id数据类型与静态类型

将一个变量定义为特定类的对象时,使用的是静态形态。

使用动态类型调用一个方法,注意规则:如果在多个类中实现名称相同的方法,那么每个方法都必须符合各个参数的类型和返回值类型。

五、有关类的问题

NSObject类所支持的一些基本方法。

  1. -(BOOL) isKindOf:class-object(判断对象是否是class-object或其子类的成员)  
  2. -(BOOL) isMenberOfClass:class-object(判断对象是否是class-object的成员)  
  3. -(BOOL) respondsToSelector:selector(判断对象是否能够响应selector所指定的方法)  
  4. +(BOOL) instancesRespondToSelector:selector(判断指定的类实例是否能响应selector所指定的方法)  
  5. +(BOOL) isSubclassOfClass:class-object(判断对象是否是指定类的子类)  
  6. -(id) performSelector:selector(应用selector指定的方法)  
  7. -(id) performSelector:selector withObject:object(应用selector指定的方法,传递参数object)  
  8.  -(id) performSelector:selector withObject:object1 withObject:object2(应用selector指定的方法,传递参数object1和object2) 

要根据类名或另一个对象生成一个类对象,可以向它发送class消息。如:要从名为myClass的类中获得类对象,可编写:[myClass class];

六、使用@try处理异常

@try格式:

  1.      
  2.  @try{  
  3.  statement  
  4.  statement  
  5.  ……  
  6. }  
  7.  @catch(NSException *exception){  
  8.  statement  
  9.  statement  
  10.  ……  

在@try块中加入这些statement后,程序正常执行。但如果块中某一条语句抛出异常,执行不会终止,而是立即跳到catch块,在那里继续执行。在@catch块内处理异常可行的执行程序是记录出错消息,清楚和终止执行。

@finally块包含是否执行抛出异常的@try块中语句代码。

@throw指令允许你抛出自己的异常,可以使用该指令抛出特定异常,或者在@catch块内抛出带你进入类似如下的代码的异常:#throw;

小结:解析Objective-C多态动态类型动态绑定的内容介绍完了,希望通过本文的学习能对你有所帮助。

责任编辑:zhaolei 来源: 新浪博客
相关推荐

2014-11-25 10:18:17

Objective-C

2013-07-24 19:19:03

Objective-CiOS开发动态特性之protoc

2009-07-22 08:52:05

Scala动态绑定

2011-08-10 18:07:29

Objective-C反射

2013-03-27 12:54:00

iOS开发Objective-C

2014-08-05 13:09:34

Objective-C动态特性

2011-08-04 15:14:39

Objective-C 数据类型

2023-10-20 09:51:00

编程开发

2011-07-08 18:44:09

Objective-C Self Super

2011-08-11 17:39:25

Objective-C笔试题

2011-08-05 15:46:32

Objective-C 程序设计

2011-08-04 09:56:30

Objective-C 变量 数据类型

2011-07-06 11:19:45

Objective-C

2009-02-03 09:33:26

动态类型动态编程C# 4.0

2011-08-04 15:52:48

Objective-C HTML

2011-07-19 13:49:19

Objective-C 数据类型

2011-08-15 14:02:36

Objective-C

2011-07-29 16:08:31

Objective-C 内存

2014-12-12 14:57:11

Objective-C封装

2011-08-15 17:47:13

Objective-CisMemberOfC
点赞
收藏

51CTO技术栈公众号