2010-07-08 54 views
3

我想在Objective C项目中包含几个直接的C函数。简单的东西是这样的:在我的Xcode项目中组织C代码

CGPoint vectorSum (CGPoint point1, CGPoint point2) { 
    return CGPointMake(point1.x+point2.x, point1.y+point2.y); 
} 

什么是保持事物的最佳方式组织的?

特别是,我注意到,当我去创建一个.c文件时,它给了我一个创建头文件的选项。这是一个有用的事情吗?

编辑 - 添加更多的细节:

我可以搞定一切告诉Xcode中创建一个 Objective-C类“VectorSum”,删除了实际的类头和实施,确定上述功能vectorSum工作在实现文件,并且具有头文件包含以下内容:

#import <Foundation/Foundation.h> 

CGPoint vectorSum (CGPoint point1, CGPoint point2); 

这工作,但感觉“不对”。 。 。当我真正想要的是C代码时,为什么我要开始创建一个客观的C类?

但是,如果我试图用Xcode的选项来创建一个直接的C文件,我不能得到它的工作。如果我不导入基础,编译器会抱怨它不知道CGPoint是什么。如果我确实导入了基础,我就会遇到一大堆编译器错误,可能是因为Xcode试图将基础作为C代码读取。

回答

1

普通C代码无法导入Objective-C框架(Cocoa/Foundation/etc)。

相反,包括相关的基于C的框架...

例如

#include <ApplicationServices/ApplicationServices.h> 

#include <CoreFoundation/CoreFoundation.h> 

的Xcode不提供一个选项,以一个简单的.m文件添加到项目,但你可以只添加一个.c文件,然后将其重命名为。米没有任何问题。

头文件将很有用,以便您的其他代码可以包含它以获取辅助函数的声明。