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 に答える