- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 Obj的ect-C面向对象部分
* * IOS提供的消息中心来解决来解决此类问题,让数据模型组件作为消息的生产者,视图组件作为消息的消费者——每当数据模型组件的内部状态数据发生变化时。数据模型组件向中心发送消息。 * * * * * * * * * * * * * * * 和定义类不同,正式的协议不再使用@interface、@implementation关键字,而是使用@protocol关键字 * 和定义类不同,正式的协议不再使用@interface、@implementation关键字,而是使用@protocol关键字 * 和定义类不同,正式的协议不再使用@interface、@implementation关键字,而是使用@protocol关键字 * 和定义类不同,正式的协议不再使用@interface、@implementation关键字,而是使用@protocol关键字 * 和定义类不同,正式的协议不再使用@interface、@implementation关键字,而是使用@protocol关键字 * 8、类的继承与派生 重写父类方法:当子类和父类有同名的方法时,称为方法的重写,子类重写了父类的方法,也可以说覆盖了父类的方法;此时通过子类对象调用的是子类的方法。 8、类的继承与派生 super关键字:如果需要在子类中调用父类被覆盖的实例方法,可以在子类中通过super关键字调用。 9、多态 多态:Objective-C指针类型的变量有两个:一个是编译的类型,一个是运行的类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就可能出现多态。 9、多态 10、指针变量强制类型转换与实际类型判断 强制类型转换:强制类型转换只是改变了改指针变量的编译时类型,而该变量所指对象的实际类型并不会发生任何改变 10、指针变量强制类型转换与实际类型判断 指针变量类型判断:为了保证程序的正常运行,一般建议在执行强制转换之前,首先要判定该对象是否为某类,或子类的实例。 1. -(BOOL)isKindOfClass:clazz 判断该对象是否为clazz或子类的实例 2. -(BOOL)isSubclassOfClass:clazz 判断该对象是否为clazz的子类的实例 11、类别与扩展 类别:Objective-C的动态特征允许使用类别为现有的类添加新方法,并且不需要创建子类,不需要访问原有类的代码 @interface 已有类名(类别名) //方法定义部分 @end 1、定义类时使用的类名是该项目中没有的类,而定义类别时使用的类名必须是已有的类 2、定义类别必须使用圆括号来包含类别名 3、类别中通常只包含方法的定义,命名形式为“类名+类别名” 12、类别与扩展 11、类别与扩展 扩展:扩展与类别类似,相当于匿名的类别。扩展用于临时对某个类的接口进行扩展,而类实现部分同时要实现接口部分定义的方法和扩展部分定义的方法 @interface 已有类名() { //实例变量 } //方法定义部分 @end 11、类别与扩展 扩展:扩展与类别类似,相当于匿名的类别。扩展用于临时对某个类的接口进行扩展,而类实现部分同时要实现接口部分定义的方法和扩展部分定义的方法 12、协议与委托 协议:协议相当于多个类共同的行为行为规范,他申明一组方法,列出他的参数和返回值,共享给其他类使用,然后不进行实现,让用它的类来实现这些方法;在任何一个类中,只有声明了协议,都可以实现协议里的方法 @protocol 协议名父协议1,父协议2 //多个协议方法的定义 @end 1、一个协议可以有多个直接父协议,但协议只能继承协议,不能继承类 2、协议定义中只有方法签名,没有方法实现 3、与类的继承不同,一个协议可以有多个直接的父协议,之间用逗号隔开 12、协议与委托 遵守协议:在类定义的接口部分可指定该类继承的父类,以及遵守的协议 @interface 类名 : 父类协议1,协议2 @end 12、协议与委托 协议与委托:协议体现的是一种规范,定义协议的类可以把协议定义的方法委托给实现协议的类,这样可以让类定义具有更好的通用性质 13、异常处理 异常处理:Objective-C提供了@try.....@catch....@finally来捕获异常,开发者可以将可能引起异常的代码放在@try后的代码内,当程序发生异常时,该异常可以使用catch块进行捕获 @try{ //可能引起异常的业务代码 } @catch(异常 ex1){ //异常捕获代码 } @catch( 异常 ex2){
文档评论(0)