在我的应用程序中,我想存储大约 30 个字符串。以后想在几节课上用,每节课只用一次。存放它的最佳位置在哪里?我在 ios 中阅读了有关单例类的信息,但我不确定这是否适合我。
我想做类似 NSArray 的东西,在for循环中我可以搜索数组。
我试图将其定义为:
NSArray *arr = [NSArray arrayWithObjects:@"something",@"else", nil];
但是我可以在 .h 文件中做到这一点,而且我不确定是否对于常量变量我想要一个类。
在我的应用程序中,我想存储大约 30 个字符串。以后想在几节课上用,每节课只用一次。存放它的最佳位置在哪里?我在 ios 中阅读了有关单例类的信息,但我不确定这是否适合我。
我想做类似 NSArray 的东西,在for循环中我可以搜索数组。
我试图将其定义为:
NSArray *arr = [NSArray arrayWithObjects:@"something",@"else", nil];
但是我可以在 .h 文件中做到这一点,而且我不确定是否对于常量变量我想要一个类。
好吧,如果您不介意,您可以拥有一个 plist 文件,其中包含一个NSArray
和所有NSStrings
内容,然后加载它们:
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"myArray" ofType:@"plist"];
NSArray *myArrayOfStrings = [NSArray arrayWithContentsOfFile:plistPath];
单例模式是一种解决方案,但是对于操作人员想要的,plist 就绰绰有余了。
对于一个数组,你不能!常量是在运行时创建的,您可以使用表达式对其进行初始化。您可以声明一个返回数组的便利类方法,并在该方法中使用静态 NSArray * arr,将其视为单例。
您应该考虑使用位于“Other Sources 文件夹”中的“MyProjectName_Prefix.pch”。所有包含和定义都包含在项目的每个类中。在您的情况下,最好的方法是,恕我直言,您将所有常量放入“myStringConstants.h”文件中,然后从“MyProjectName_Prefix.pch”中包含该文件。
您可以使用纯 C 样式:
NSString* const arr[] = {@"something",@"else"};
const int arrSize = sizeof(arr)/sizeof(arr[0]);
void printArr()
{
for(int i=0; i<arrSize; i++) {
NSLog(@"%@", arr[i]);
}
}
要在 .h 文件中声明原型,请使用extern
:
extern NSString* const arr[];
extern const int arrSize;