建议在Objective C中创建小实用程序类的方法

时间:2011-10-19 15:07:35

标签: objective-c cocoa-touch cocoa

我有一个班级(比如A班,有A.h和A.m文件)。这个类需要一个实用程序类,我懒得创建Utility.h和Utility.m

有没有办法在A.m中包含它的定义(实现)?创建声明(界面)是否不可避免?

在这种情况下,最佳做法是什么?

2 个答案:

答案 0 :(得分:6)

当然有一种方法:只需将实现添加到文件中。编译器并不关心实现的位置,只要它具有所有相关的声明即可。它是链接器的工作,用于理清目标代码的实际位置。

不,你不能避免创建一个定义。因此,在其他代码需要的地方创建它。如果只需要A类的辅助类,那么您也应该更喜欢将接口声明放入实现文件中。

答案 1 :(得分:1)

您可以在类@implementation中添加方法,而无需在界面中声明它们。甚至不在私人A ()类别中。编译器会抱怨缺少选择器,除非你对它的第一次使用之前的所有方法(源代码顺序)都足够小心。

因此,从技术上讲,您可以避免接口声明。

您还有一些其他选择,不需要使用其文件对创建新类以及选择新类名的巨大效果:

  1. 在相同的A.h / m文件中创建类别A (Utils)
  2. 仅在A.m(稍快的编码)
  3. 中创建一个类别A (Utils)
  4. 在A.h / m
  5. 中创建普通C函数

    在所有这些情况下,您需要编写几乎相同的代码。我更喜欢选项2,然后在其他地方需要方法时将类别提取到实际文件甚至是不同的类。