第六章原文件组织


一、拆分接口和实现部分

Objective-C的源代码被分为两部分:接口@interface和实现@implementation

接口用来提供类的公共描述,包含了所有使用该类所需的信息,现实中文件名.h结尾

 

实现告诉编译器如何工作,这部分代码实现了接口中声明的方法,现实中.m结尾、

         .mm结尾会被识别为Objective-C++代码,这样可以同时使用C++Objective-C

 

二、导入头文件

实现一个接口时应首先导入该类的接口,即import "Tire.h"

如果看到Cannot find interface definition for 类名就是忘了导入接口声明

 

导入头文件有两种方法:使用引号或者使用尖括号

         #import <Cocoa/Cocoa.h>       尖括号是用来导入系统头文件的

         #import "Tire.h"                         引号表示导入项目本地头文件

 

三、使用跨文件依赖关系

在一个引用其他类的类中通过替换#import头文件命令改为@class来避免一个类变更后所有引用类均要重新编译的问题

举例代码:一个接口文件代码

#import <Cocoa/Cocoa.h>

 

@class Tire;                                          替换了原有代码#import Tire;

@class Engine;                                     @class创建了一个向前引用,他告诉编译器,以后你会知                                                                           道这个类是什么,现在你只需要知道这些

 

                                                                 @class可以解决#import中多个类互相引用时造成的编译错                                                        误,@class可以解决

@interface Car : NSObject

{

               Tire *tires[4];

               Engine *engine;

}

 

-(void) setEngine : (Engine *) newEngine;

-(Engine *) engine;

-(void) setTire : (Tire *)tire

               atIndex : (int) index;

-(void) print;

@end//Car

四、导入和继承

当一个类继承自其他类时,该类需要了解其超类中的详细信息,因而无法使用@class命令,只能使用#import命令


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值