-2

私は 1 から 6 までのサイコロの値を持っています。また、A から Z までのアルファベットを持っています。

アプリケーションのロード時に、そのカスタムボタンのタイトルを「A」に設定しました。サイコロをクリックすると、乱数が生成されます。つまり、ここでは 5 だとします。

今私の仕事は、カスタム ボタンのタイトル/テキストを「F」に変更することです。これは、A からの 5 つのインクリメントを意味します。

また、サイコロをクリックするとテキストが「Z」の場合、4 になった場合、出力は「D」になります。

これら2つのタスクをどのように達成できますか?

4

3 に答える 3

1

この方法を試してみてください...

Array *a=[[NSArray arraywithObjects:@"A",@"B",........@"Z",nil];
 first DiceNumaber=1;

Then Random Number=5;

DiceNumber=DiceNumber+5;
//So, DiceNumber=6;




   Then
   if(DiceNumber>26){
 DiceNumber=DiceNumber%26;
}

Now, lblText.text=[a objectAtIndex:DiceNumber - 1];
//This will prints "F" 

問題がある場合はお知らせください。

于 2013-10-15T07:05:21.943 に答える
0

これは、ASCII 値と NSString を操作する方法です。NSString は unichars で動作するため、非 ASCII 文字列に対して予期しない結果が生じる可能性があることに注意してください。

まず、現在のアルファベットのアスキー値を取得する必要があります。現在のアルファベットがAであると仮定すると、そのASCII値は次のとおりです。

 // NSString to ASCII
  NSString *string = @"A";
  int asciiCode = [string characterAtIndex:0]; // 65

ここでサイコロを振ってサイコロの値 5 を取得し、ASCII 値に 5 を追加します。

So, current asciiCode= asciiCode + 5; //70
// ASCII to NSString
// int asciiCode = 70;
if(asciiCode<91)
{
       NSString *string = [NSString stringWithFormat:@"%c", asciiCode]; //E
}
else
{
      int remainder = 90%asciiCode;
      NSString *string = [NSString stringWithFormat:@"%c", 65 + remainder-1];
}

これがお役に立てば幸いです。

于 2013-10-15T07:01:33.720 に答える