在 Objective-C 中,如果我有一个只包含类方法(没有成员变量或实例方法)的类,我可以在类的头文件 (.h) 中定义类方法,而跳过创建 .m 文件吗?
最佳答案
您可以,但基本上不应该。虽然您可以将 @implementation 放在 header 中,但它违反约定并且可能会产生意想不到的副作用,与 C++ 或其他语言相同(例如,您无法控制在 header 被#included 之前#included 的内容include,所以你不能确定你有一个健全的全局命名空间)。
Objective-C 中的最佳实践是只在头文件中保留声明以及文档。由于文档通常非常冗长(如果写得好的话),您的 header 中已经包含了相当多的内容 - 在其之上添加代码会太多。
还要记住,没有内联 Objective-C 方法,无论是类还是实例。这是将代码放在头文件中是 C/C++ 中相对流行的做法的重要原因之一。你当然可以把静态函数放在你的 Objective-C 头文件中,这样你就可以用这种方式实现你的代码,但这可能是一个不受欢迎的设计——例如,类方法提供了一种命名空间形式,通常明智的做法是利用.
关于objective-c - header 中的类方法实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13786771/