我有一个iOS应用程序,该应用程序使用多个枚举来获取有效值,主要是因为我正在使用一些整数驱动的状态转换表,但是还允许较低的内存使用量以及在SQLite中进行索引搜索的能力,这是我正在使用的后端。
我将所有枚举都放在一个通用的.h文件中,该文件包含在许多基于枚举类型创建变量的类中。我也有几种方法可用于许多类。其中一些将枚举转换回字符串,使用typedef和(人类)语言作为参数。
typedef之一如下:
typedef enum {
Ben,
Sen,
O,
Biz,
Siz,
Onlar
} pronoun_typedef;
还有另一组方法,主要是字符串操作,这些方法被馈给多个参数并返回
NSString*
或NSMutableString*
。我已经几次将它们移到不同的类中,并且我认为最好的方法可能是创建一个“实用程序”类并将其包含在每个相关的类中,并根据需要实例化。
这是一个好方法吗?我考虑的另一个选择是创建一个单例,然后将其转发给需要该类的每个类。关于使用哪种方法的任何建议,或关于其他方法的任何建议?
我知道这与其他问题类似,但是我没有得出结论,因此我想再问一次。 Singleton and Static Utility classes
最佳答案
如果实用程序方法不需要引用self,我将使它们成为C函数,与常量定义在同一模块中。您需要一个带有常量定义和函数声明(原型)的.h文件,以及一个带有定义函数体的.c文件。
如果需要作为一个对象,则在单个实例有意义的情况下使用单例,在每个实例需要其内部数据/状态的私有,独立副本的情况下使用多个实例。
关于ios - 单例还是实用类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11061480/