我似乎用这个小iPhone应用程序产生了很多问题....
我试图用NSStrings填充NSMutableArray,我的工作方式如下:
...
NSString *myStr = [[NSString alloc] initWithString:@"Jupiter II"];
[txtArray addObject: myStr];
[myStr release];
NSString *myStr = [[NSString alloc] initWithString:@"Could this be OUR Waffles?"];
// in this second block, the line above generates the error: 'Redefinition of myStr'. Why?
[txtArray addObject: myStr];
[myStr release];
...
第一个块没有产生错误,但后续的块(每个字符串对象的内容相同)都会产生错误,“重新定义myStr”。为什么呢?
我知道这将是一个facepalm,但我必须知道,并超越这个!
了解任何和所有帮助!
亲切的问候,
史蒂夫奥沙利文答案 0 :(得分:3)
只需从第二个块中删除NSString *:
NSString *myStr = [[NSString alloc] initWithString:@"Jupiter II"];
[txtArray addObject: myStr];
[myStr release];
myStr = [[NSString alloc] ...
每次编写类似NSString *myStr
的内容时,都会声明新变量 - 并且变量名在同一范围内必须不同。但是您可以重复使用相同的变量来存储不同的对象 - 就像在上面的代码中那样做
答案 1 :(得分:1)
也许只是为了举例,但你的前三行代码可以替换为:
[txtArray addObject:@"Jupiter II"]
此外,创建字符串数组非常简单:
[NSArray arrayWithObjects:@"Jupiter II",
@"Could this be OUR Waffles",
nil];