博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-C文件组织介绍(附代码)
阅读量:7039 次
发布时间:2019-06-28

本文共 1477 字,大约阅读时间需要 4 分钟。

接口与实现

Objective-C类的代码分为两部分,一部分是接口,用来展示类的构造:

#import 
#import "Hand.h"#import "Foot.h"@interface Person : NSObject{ NSString *name; NSString *sex; NSString *age; Hand *hands[2]; Foot *foots[2];}-(void)setName:(NSString*) name;-(void)setSex:(NSString*) sex;-(void)setAge:(NSString*) age;-(void)print;-(void)desc;@end复制代码

这部分代码一般放在头文件中,一般以.h结尾。

另一部分是实现:

@implementation Person-(void)setName:(NSString*) n{    name = n;}-(void)setSex:(NSString*) s{    sex = s;}-(void)setAge:(NSString*) a{    age = a;}-(void)print{    NSLog(@"name:%@,sex:%@,age:%@",name,sex,age);}-(id)init{   ……    return self;}-(void)desc{    ……}@end复制代码

所有的实现都放在与类同名但以.m为后缀的文件中。

如果使用.mm做文件的扩展名,就可以使用c++和Objective-C混合编程了。

头文件

导入头文件有两种方式,一种是使用引号,一种是使用尖括号。尖括号用于导入系统头文件,引号导入本地头文件。

#import语句就像#include,本质是进行了剪切和粘贴的操作,将Foot.h和Hand.h的文件内容粘贴到Person中。

文件之间的依赖关系

在上述代码中Person依赖于Foot和Hand,一般Foot和Hand其中一个产生任何变化,Person都会重新进行编译。

Objective-C提供了一种方法,减少这种重新编译的负面影响。就是使用@class关键字。
这个关键字是用来告诉编译器,这是一个类,所以我只会通过指针来引用它。

#import 
@class Hand;@class Foot;@interface Person : NSObject{ NSString *name; NSString *sex; NSString *age; Hand *hands[2]; Foot *foots[2];}-(void)setName:(NSString*) name;-(void)setSex:(NSString*) sex;-(void)setAge:(NSString*) age;-(void)print;-(void)desc;@end复制代码

@class对于循环引用也很有好处,例如A依赖B,B也依赖A,这时如果使用import就会报错,但是使用@class就不会。

对于非指针引用的其他类就不能使用@class。例如我们建立一个Student类,继承Person类,这时在Student中就必须#import Person.h。
对比代码效果更好一些,我将代码放在了github上:
更多的开发知识,可以关注我的公众号:

转载地址:http://gtxal.baihongyu.com/

你可能感兴趣的文章
如何成为一名架构师?
查看>>
我的友情链接
查看>>
nfs failed, reason given by server: Permission denied的离奇解决
查看>>
2018 1.21测试
查看>>
DFS与BFS对比
查看>>
dedeCMS php语法在模版中的应用
查看>>
sublime 安装ctag 实现函数跳转
查看>>
sshd问题:A protocol error occurred. Change of username or service not allowed
查看>>
jQuery开发者眼中的AngularJS
查看>>
【DAY9】 关于多线程熊吃蜜Demo1的作业实验
查看>>
Python实现多属性排序
查看>>
nginx 访问日志分析
查看>>
RabbitMQ之消息确认机制(事务+Confirm)
查看>>
给出一个数组,计算数组中少了哪个数据的实现
查看>>
USB-232卡 配置
查看>>
C#窗体程序皮肤设置
查看>>
T-SQL.字符串函数
查看>>
mysql慢查询
查看>>
offices文件打开乱码问题如何处理
查看>>
抓屏程序
查看>>