Я использую версию 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. На выходе написано «Setting cardValue», а затем номера переменных экземпляра правы, но два других неверны. ИгрокTotal считывает все, что было до того, как была получена эта карта, и playerCard3Value читает 0. Чтобы дать вам некоторый контекст, эта функция вызывается не тогда, когда первая или вторая карта обрабатывается, а когда третья и так далее. Первые две функции не обрабатываются. Кто-нибудь знает, почему это происходит?
ли это быть из-за рамки переменных? – PsyKzz
@Matt PsyK - Как я могу сделать их глобальными? Я просто объявляю их в файле .h как: 'int playerCard3Value;' –
К сожалению, я не знаю obj-c или xcode, чтобы комментировать. – PsyKzz