Xcodeバージョン4.6を使用しています。私が作っているiPhoneとiPad用のアプリケーションで、dealCardという関数を作りました。ここにあります:
- (void)dealCard : (UIImageView *)cardImage : (int)card : (int)suit : (BOOL)aceBool : (int) cardValue : (int)total
{
suit = arc4random() % 4;
card = arc4random() % 13;
if (suit == 0)
{
//set images
if (suit == 1)
{
//set images
}
if (suit == 2)
{
//set images
}
if (suit == 3)
{
//set images
}
if (card < 10 && card != 0)
{
NSLog(@"Setting cardValue");
cardValue = card+1;
}
else if (card != 0)
{
NSLog(@"Setting cardValue");
cardValue = 10;
}
else
{
NSLog(@"Setting cardValue");
aceBool = YES;
if (total + 11 <= 21)
{
cardValue = 11;
}
else
{
cardValue = 1;
}
}
total = total + cardValue;
NSLog(@"Total = %d cardValue = %d",total,cardValue);
NSLog(@"playerTotal = %d playerCard3Value = %d",playerTotal,playerCard3Value);
}
私が置いたページのさらに下:
[self dealCard: playerCard3Image : playerCard3 : playerSuit3 : playerCard3ace : playerCard3Value : playerTotal];
私の問題はcardValueにあります。出力には「カード値の設定」と表示され、インスタンス変数番号は両方とも正しいですが、他の2つは間違っています。playerTotalは、このカードが配られる前の合計を読み取り、playerCard3Valueは0を読み取ります。コンテキストを提供するために、この関数は、1枚目または2枚目のカードが配られたときではなく、3枚目以降が配られたときに呼び出されます。最初の2つは関数で処理されません。なぜこれが起こっているのか誰かが知っていますか?