- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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 (
您可能关注的文档
- flashcard【DOC精选】.doc
- Flash实验提示【DOC精选】.doc
- flash_ actionscript. ColorTransform【DOC精选】.doc
- FIX与Siemens PLC连接说明【DOC精选】.doc
- Flash动画实战精选-汽车广告【DOC精选】.doc
- Flash的函数教程【DOC精选】.doc
- FinalCap苹果字幕软件说明书【DOC精选】.docx
- flash_ actionscript. Array【DOC精选】.doc
- FLASH考证(真题补充)【DOC精选】.doc
- flash_ actionscript. BitmapData【DOC精选】.doc
文档评论(0)