objective-C 的程式碼檔案組織

gamebus發表於2021-09-09

上一篇中,所有程式碼都是放在同一個檔案main.h中的,這顯然不是一個好的方式,程式碼多了以後,看著就頭大。可以將其進行拆分:

1、將所有列舉、結構的定義單獨放在一個檔案ShapeDef.h中

//定義“幾何形狀型別”列舉typedef enum{	kCircle,	kRectangle,	kOblatesShperoid   } ShapeType; //定義“幾何形狀顏色”列舉typedef enum{	kRedColor,	kGreenColor,	kBlueColor} ShapeColor; //定義“幾何形狀矩形區域”結構typedef struct{	int x,y,width,height;} ShapeRect;  //定義“幾何形狀”結構typedef struct{	ShapeType type;	ShapeColor fillColor;	ShapeRect bounds;}Shape;

2、將所有方法都放在另一個檔案ShapeMethod.h中

#import "ShapeDef.h"//將“顏色列舉“轉換為字串NSString *colorName(ShapeColor colorName){	switch (colorName) 	{		case kRedColor:			return @"red";			break;		case kGreenColor:			return @"green";			break;		case kBlueColor:			return @"blue";		default:			return @"no clue";			break;	}}//畫圓void drawCircle(ShapeRect bounds,ShapeColor fillColor){	NSLog(@"drawing a circle at (%d,%d,%d,%d) in %@",bounds.x,bounds.y,bounds.width,bounds.height,colorName(fillColor));}//drawCircle //畫矩形void drawRectangle(ShapeRect bounds,ShapeColor fillColor){		NSLog(@"drawing a rectangle at (%d,%d,%d,%d) in %@",bounds.x,bounds.y,bounds.width,bounds.height,colorName(fillColor));}//drawRectangle //畫橢圓形void drawEgg(ShapeRect bounds,ShapeColor fillColor){	NSLog(@"drawing an egg at (%d,%d,%d,%d) in %@",bounds.x,bounds.y,bounds.width,bounds.height,colorName(fillColor));}//drawEgg //畫幾何形狀void drawShapes(Shape shapes[],int count){	int i;	for(i=0;i

3、最後在主檔案Main.m中使用ShapeMethod.h

#import "ShapeMethod.h"int main () {    	Shape shapes[3];	 	ShapeRect rect0 ={0,0,10,30};	shapes[0].type = kCircle;	shapes[0].fillColor = kRedColor;	shapes[0].bounds = rect0;  	 	ShapeRect rect1 = {30,40,50,60};	shapes[1].type = kRectangle;	shapes[1].fillColor = kGreenColor;	shapes[1].bounds = rect1;	 	ShapeRect rect2 = {15,18,37,39};	shapes[2].type = kOblatesShperoid;	shapes[2].fillColor = kBlueColor;	shapes[2].bounds = rect2;  	 	drawShapes(shapes, 3);	        return 0;}

注:ShapeDef.h,ShapeMethod.h,Main.m三個檔案均處於同一個專案的同一個目錄中。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4687/viewspace-2800242/,如需轉載,請註明出處,否則將追究法律責任。

相關文章