我可以在NSArray上使用自定义类方法来返回常量吗?

时间:2013-07-23 13:52:35

标签: ios objective-c cocoa nsarray class-method

我经常需要在多个地方引用一个字符串数组(比如团队名称)。该数组的内容不会改变。

为此,我定义了自己的类MyConstants。在标题中,我定义了一些不相关的常量字符串和数字。在实现文件中,我使类成为单例,然后添加了类方法arrayOfTeamNames

要访问数组,我使用[Constants arrayOfTeamNames]。

我接受了吗?

我在考虑NSString和NSArray本身如何通过类方法处理创建。例如,如果我想要一个空数组,我可以使用[NSArray array] - 所以假设'array'是NSArray上的类方法。

因此,我应该使用类别将“+ arrayOfTeamStrings”添加到NSArray而不是使用我自己的类,而不是上面的实现吗?

或者,或者,我应该创建自己的NSArray子类并在那里添加类方法吗?

在任何一种情况下,我是否需要让自己成为单身人士?或者这不是必要的吗?

1 个答案:

答案 0 :(得分:0)

通常,通过类别向基础类添加类方法可以有很好的用途。但在这种情况下,我实际上坚持arrayOfTeamNames成为MyConstants的一部分。团队名称是NSArray的事实并不像它对您的应用程序来说是一个常数那么重要。

如果MyConstants中定义的值非常多样且不相关,或者只有其中的几个,那么我会考虑将MyConstants作为一个类除去并使用类别甚至只是externs,例如extern NSArray * const BPAllTeamNames