我有几十个NSStrimgs,当应用程序加载时,我希望所有都设置为相同的集合。他们都是。如何在不输入每一个的情况下这样做?有快捷方式吗?
感谢。
答案 0 :(得分:3)
问题还在于Josh对于他如何使用他的几十个字符串并不够具体......我认为这会更好:
NSMutableArray *stringsArray = [NSMutableArray arrayWithCapacity:1];
NSString *tempStr = @"My unique string"; // Thanks Sven!
// Say you want a dozen strings
for (int i = 0; i < 12; i ++) {
[stringsArray addObject:tempStr];
}
// Now you can use them by accessing the array
[self doSomethingWithString:[stringsArray objectAtIndex:8]];
答案 1 :(得分:1)
您可以创建一个静态全局字符串并引用它,而不是拥有几十个具有相同值的字符串吗?如果以后需要将其更改为单独的值,请使用初始化为全局字符串的实例变量。
答案 2 :(得分:1)
这听起来像你的模型不是很好。由于您希望将所有字符串初始化为相同的值,因此它们显然是相关的,并且可能应该像iPhoneDevProf所描述的那样建模。这使得其他事情变得更加容易,您可以将为每个字符串重复的其他代码移动到循环中。
答案 3 :(得分:0)
如果在编译代码时已知该值,并且在后续应用程序会话后它不会更改,则可以使用简单的#define。
#define MY_DEFAULT_STRING @"THE DEFAULT STRING"
现在你需要做的就是以下几点。
{
NSString *myString1 = MY_DEFAULT_STRING;
NSString *myString2 = MY_DEFAULT_STRING;
....
NSString *myStringN = MY_DEFAULT_STRING;
}
如果所有字符串都在同一个代码文件中,只需将define放在顶部即可。如果字符串位于单独的代码文件中,则可以将其放入预编译的头文件中。拥有常量文件通常会更好。
使用常量extern NSString可能更正确,但这很简单易行。