objective-c - header 中的类方法实现

标签 objective-c

在 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/

相关文章:

objective-c - 更新后,应用程序不会从文档文件夹加载现有文件

iphone - 在方向锁定的情况下强制相机在风景中查看

ios - 将以编程方式创建的 UIView 的中心与自动布局 View 的中心对齐

objective-c - 在 Objective-C 中实现真/假/未定义三分变量的最佳方法

ios - 为只读对象的属性赋值

ios - 错误 无法使用 'Dictionary<NSObject, AnyObject>' 类型的索引为 'String' 类型的值添加下标

objective-c - 如何覆盖 Notepad++ 的默认文件扩展名?

ios - RestKit 只保存响应数组中的最后一项

objective-c - 将 int 转换为缩短的格式化字符串

iOS8 : Blue bar "is Using Your Location" appears shortly after exiting app