0

我有一个我正在完成的程序,它是一个名称生成器。现在它从 2 个单独的数组中获取一个随机值,将它们连接起来并将结果显示为标签。text -- 我想要一个按钮来反转标签文本(而不是 John Doe,它会说 Doe John)。这是我用来执行此操作的代码。我的想法是,我使用数组中的相同值,然后将字符串分配给一个变量,以便稍后在另一个名为“reverseNameValue”或其他方法的方法中使用。它不起作用:) 当我单击“反向”按钮时,它完全显示了一个不同的名称。有什么建议吗?

- (IBAction)generateBName:(id)sender {
int a = arc4random() % 3;
int b = arc4random() % 3;


// populate the array for the names
NSArray *firstNameArray = [NSArray arrayWithObjects: @"Jacob",
                           @"Ethan",
                           @"Justin", nil];
NSArray *middleNameArray = [NSArray arrayWithObjects: @"Jose",
                            @"Jeremiah",
                            @"Julian", nil];

// concatenate strings at index of array
NSString *fullName = [NSString stringWithFormat:@"%@ %@", [firstNameArray objectAtIndex:a], [middleNameArray objectAtIndex:b]];
NSString *reverseName = [NSString stringWithFormat:@"%@ %@", [firstNameArray objectAtIndex:b], [middleNameArray objectAtIndex:a]];

// display the newly created first & middle names
reverseNameString = reverseName;
babyname.text = fullName;

和相反的方法:

- (IBAction)reverseLabel:(id)sender {
babyname.text = reverseNameString;
}
4

1 回答 1

2

您设置 reverseName 字符串的行的名称是向后的,因此它先获取名字,然后是中间名,但索引相反。它应该是:

 NSString *reverseName = [NSString stringWithFormat:@"%@ %@", [middleNameArray objectAtIndex:b],[firstNameArray objectAtIndex:a]];
于 2012-05-22T02:51:19.767 回答