Ubuntu9.10-GNUStep环境下的Objective-C多文件组织

    这里只需要注意几点就可以了,在Gnustep环境下的多文件组织可比用Xcode费事多了,文件的引用关系必须是手动编入的,这里需要注意的是几点:

1)@class只能用在声明@interface的.h头文件里面,不能用在.m的原文件里面,不然它会报奇怪的not found method错误

2)  类实现的.m原文件中,不能在显示的引入复合的类,因为在头文件里面已经引用了,但是必须显示的用#import引用对应的声明@interface的头文件

3)  在程序运行的主源文件里,必须显示的用#import引入相应的.h文件,如果用@class引入,就会报objective-c undefined reference to __objc_class_name_类的错误

4)目前为止你可能会问,那主源文件是怎么找到@interface声明对应的实现接口的类的呢?因为我们的类的@implementation是放在了.m的源文件里面,不能相互引用,所以这里,最重要的地方来了,还记得GNUmakefile这个编译文件吗?对,编译对应的.m文件及引用是在这里配置的,就是这行*_OBJC_FILES = Source1.m Source2.m Source3.m,多个源文件就写多个,依此类推,中间用空格分析,可不是逗号,我当初自作聪明的写了*.m,以为可以把目录下面所有的.m文件都编译,可是不行,所以这里一定要注意

    接下来,运行程序就可以得到想要的结果了

你可能感兴趣的:(ubuntu,xcode,Class,interface,reference)