黑马程序员技术交流社区
标题:
OC学习之源文件组织
[打印本页]
作者:
HiGodl
时间:
2015-9-24 16:55
标题:
OC学习之源文件组织
本帖最后由 HiGodl 于 2015-9-24 17:02 编辑
在我们刚刚开始学习OC时,我们基本上就是把源代码全都放在main.m文件中了,然而这样做是不合理的,对于小程序来说还可以,但是项目太大的话这样做明显维护起来会很麻烦,所以我们就需要把源代码做一个拆分,为每一个类去创建一个.m文件以及.h文件,.h存放类的@interface部分,.m存放类的@implementation部分,然后在.m文件中引入类的头文件.h,下面我们来看一个例子:
Car类
Car.h
@interface Car : NSObject{
}
-(void) print;
@end
复制代码
Car.m
#import "Car.h"
复制代码
main.m
#import <Foundation/Foundation.h>
@Car
int main(int argc, const char * argv[]) {
Car *c = [[Car alloc] init];
[c print];
return 0;
}
复制代码
其中main.m文件中引入类有两种方式,一种是使用@class,一种是class.h,但是由于使用类名.h的话每次编译都会把所有相关的类都重新编译一遍,这样在编译时会花费很长时,由于依赖关系是传递的,头文件之间也可以互相依赖,所以重新编译问题会更严重。
然而使用@class 的方式就会避免这种问题出现,@class会告诉编译器,这个引入的是一个类,我会通过指针来引用该类
但是在继承中引用父类就不能用@class这种方式了,因为子类在编译时需要得到父类的的信息才能成功的编译@interface部分
作者:
HiGodl
时间:
2015-9-24 17:04
不知怎么回事。。代码补不全了Car.m
@implementation
-(void) print{
NSLog(@"this is car");
}
@end
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2