我想在Objective C项目中包含几个直接的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代码。
答案 0 :(得分:1)
普通C代码无法导入Objective-C框架(Cocoa / Foundation / etc)。
相反,包括相关的基于C的框架......
e.g。
#include <ApplicationServices/ApplicationServices.h>
或
#include <CoreFoundation/CoreFoundation.h>
Xcode没有提供向项目添加简单.m文件的选项,但您只需添加.c文件,然后将其重命名为.m即可。
头文件很有用,这样你的其他代码就可以包含它来获取你的帮助函数的声明。