0
我正在使用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。输出显示“设置cardValue”,然后实例变量编号都是正确的,但其他两个都是错误的。 playerTotal读取此卡发放前的总数,并且playerCard3Value读数为0.要给你一些上下文,当第一张或第二张牌被发出时,而不是第三张和第二张牌被调用时,该函数被调用。前两个不在函数中处理。有谁知道为什么会发生这种情况?
请问这是由于变量的范围是什么? – PsyKzz 2013-03-06 23:49:38
@Matt PsyK - 如何让他们成为全球?我只是在.h文件中声明它们:'int playerCard3Value;' – 2013-03-06 23:52:58
不幸的是,我不知道obj-c或xcode足以发表评论。 – PsyKzz 2013-03-06 23:56:46