Flash程序员的Objective-C教程 – 类结构拆分【DOC精选】.docVIP

Flash程序员的Objective-C教程 – 类结构拆分【DOC精选】.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Flash程序员的Objective-C教程(2) – 类结构拆分 在上一篇教程中,我们编写了基本的接口和类实现,但还没有做文件拆分,所有的代码都集中在一个文件中。这样做的缺点显而易见,随着项目的扩大和代码量的增加,项目的可维护性将会变得非常困难。 大部分面向对象的语言,都支持通过文件拆分的形式,将源码按照一定的规则,分散在若干个文件中。在ActionScript中,想必我们已经很熟悉了,每一个类一般都会单独作为一个文件存在。而在Objective-C中,由于类通常为拆分为接口和实现两个部分,所以类的代码,通常也分别放在两个文件里。 .h文件,头文件,存放类的@interface指令,公共struct定义,enum常量,#defines和extern全局变量等等,头文件名称应该与类名称相同,比如Triangle.h .m文件,所有实现细节(包括类的@implementation指令,全局变量定义,私有struct等,与类同名,比如Triangle.m) 根据这个原则,我们将之前的图形代码,拆分出如下的文件结构: 首先是Shape的接口,Shape.h文件: #import Foundation/Foundation.h // 用枚举来定义颜色值 typedef enum { ? ? ? ? kRedColor, ? ? ? ? kGreenColor, ? ? ? ? kBlueColor } ShapeColor; // 定义图形区域的结构类型 typedef struct { ? ? ? ? int x, y, width, height; } ShapeRect; // 图形基类的定义,包括接口和实现 @interface Shape : NSObject { ? ? ? ? ShapeColor??fillColor; ? ? ? ? ShapeRect? ?bounds; } - (void) setFillColor: (ShapeColor) fillColor; - (void) setBounds: (ShapeRect) bounds; - (void) draw; @end // Shape 复制代码 Shape.m的定义,注意要导入接口定义#import Shape.h: #import Shape.h @implementation Shape - (void) setFillColor: (ShapeColor) c { ? ? ? ? fillColor = c; } // setFillColor - (void) setBounds: (ShapeRect) b { ? ? ? ? bounds = b; } // setBounds - (void) draw { } // draw @end // Shape 复制代码 然后是三角形的接口和类,跟Shape类似:Triangle.h #import Shape.h @interface Triangle : Shape @end 复制代码 Triangle.m #import Triangle.h @implementation Triangle // -------------------------------------------------- // 将颜色定义的枚举值,转换为可供阅读的字符串,这里把这个方法作为类的静态方法 + (id) colorName: (ShapeColor) color { ? ? NSString *colorName; ? ? ? ? switch (color) { ? ? ? ? ? ? ? ? case kRedColor: ? ? ? ? ? ? ? ? ? ? ? ? colorName = @红; ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? case kGreenColor: ? ? ? ? ? ? ? ? ? ? ? ? colorName = @绿; ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? case kBlueColor: ? ? ? ? ? ? ? ? ? ? ? ? colorName = @蓝; ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? default: ? ? ? ? ? ? ? ? ? ? ? ? colorName = @不支持的色值; ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? } ? ? ? ? return (

文档评论(0)

taotao0b + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档