将多个变量设置为相同的值

时间:2010-09-09 17:27:47

标签: iphone objective-c variables

我有几十个NSStrimgs,当应用程序加载时,我希望所有都设置为相同的集合。他们都是。如何在不输入每一个的情况下这样做?有快捷方式吗?

感谢。

4 个答案:

答案 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可能更正确,但这很简单易行。

相关问题