这是我在stackoverflow中的第一个问题! 我试图在xcode中使用两个数组来反转一个字符串,我设置了界面,我有一个按钮,一个文本字段和一个标签。 当触摸按钮时,进入文本字段的任何内容都会反转! 我得到了代码,在纸上看起来似乎是对的,问题是当我用例如“HELLO”测试应用程序时,myArray的内容是“H E”而reverseArray是“O L L”。 如果有人帮助我非常厌倦跟踪这段代码,请感激不尽:((( 这是代码:
@interface ViewController ()
@end
@implementation ViewController
@synthesize textField,string1,string2,reverseArray,myArray;
@synthesize Label1;
- (IBAction)Reverse:(UIButton *)sender {
reverseArray=[[NSMutableArray alloc]init];
string1=[[NSString alloc]init];
string2=[[NSString alloc]init];
string1=textField.text;
myArray=[[NSMutableArray alloc]init];
for (int i=0; i<=string1.length-1; i++) {
[myArray insertObject:[[NSString alloc] initWithFormat:@"%c",[string1 characterAtIndex:i]] atIndex:i];
}
for (int j=0; j<=myArray.count-1; j++) {
[reverseArray insertObject:[myArray objectAtIndex:myArray.count-1] atIndex:j];
[myArray removeLastObject];
}
NSLog(@"%@",myArray);
NSLog(@"%@",reverseArray);
答案 0 :(得分:1)
对于第二个循环,你使用myArray.count作为“for”循环的结束条件,但myArray.count每次迭代循环减少一次,因为你要从myArray中删除最后一个对象迭代。想一想:
First iteration: j=0; myArray.count - 1 = 4
Second iteration: j=1; myArray.count - 1 = 3
Third iteration: j=2; myArray.count - 1 = 2
它在第四次迭代时停止,因为j = 3&gt; myArray.count -1 = 1
在第二个循环中尝试这样的事情(注意:我现在不在xCode前面,所以在下面的块中可能会有错误。带上一点点盐):
for( int j = string1.length -1; j >= 0; j-- ) {
[reverseArray addObject:[myArray objectAtIndex:j]];
}