2014-11-08 49 views
2

每隔一段时间我都会开始一个“辅助类”,并发现我完全可以用C函数来满足我的需求(尽管这些函数通常可以使ObjC在他们可能会返回类型或NSDictionary *或其他任何..),所以我会删除@implementation和@interface,并没有任何类,只有.h和.m文件..只包含C(或最小的ObjC ..)的ObjC文件

什么是最佳做法,应该将我的.m文件更改为.c文件?或者这对于那里的ObjectiveC类型是不可能的/困难的?使用我不知道的或者我所做的很好的不同文件类型有什么好处吗? (我只开发OSX和iOS,并完全用Xcode的,至少现在是这样。)

感谢您的时间:)

+3

没有要求Objective-C源文件(.m)包含类接口或实现。如果代码使用的是Objective-C语言,那么它是一个Objective-C源文件,应该用.m扩展名来命名。 – 2014-11-08 11:17:48

+0

感谢@KenThomases – Jef 2014-11-08 11:27:13

+1

也许你可以考虑使用类方法而不是函数? – Antzi 2014-11-12 07:52:43

回答

2

当您使用Xcode中的命令行工具它给你一个.m文件尽管事实上初始文件不是类实现文件,但对于您的代码,因此最好遵循此模式(对于其他项目中的主文件也是如此)。

如果您在Xcode中选择一个文件并打开右边栏,您可以让Xcode知道如何解析该文件。所以如果你的.c文件中有ObjectiveC,你可以将Parse类型从C文件改为ObjC文件,它将会正常工作。

+0

谢谢詹姆斯。它确实类似于main.m文件,它只是一个c函数,但在该函数中有一个appDelegate对象。伟大的一点 – Jef 2014-11-08 10:44:43

+0

所以我想我正在做什么苹果做,你得到的点队友,谢谢 – Jef 2014-11-08 10:47:17

+1

“对象文件”是一个编译源文件,输入到链接器,并使用“.o”扩展名。您可能是指类实现文件(带有“.m”扩展名)。 – 2014-11-11 23:48:00