Объективный C alertView необъявленный идентификатор

Я пытаюсь закодировать различные всплывающие окна alertView с разными параметрами в зависимости от изображения, на которое нажимает пользователь. Мой метод - (void) alertView: (UIAlertView *) alertView clickedButtonAtIndex: (NSInteger) buttonIndex сообщает, что у меня есть необъявленный идентификатор alertView. Любая помощь будет оценена. Некоторые из моих кодов выглядят следующим образом:

@implementation Store


-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

UITouch *touch = [touches anyObject];

// SKINS SECTION -------------------------------------------------------------------------

if ([touch view] == catCover){
    catCover.image = [UIImage imageNamed:@"CatSelected.png"];
    dogCover.image = [UIImage imageNamed:@"DogCover.png"];
    markCover.image = [UIImage imageNamed:@"MarkCover.png"];
}else if([touch view] == dogCover){
    if (dogBought) {
        catCover.image = [UIImage imageNamed:@"CatCover.png"];
        dogCover.image = [UIImage imageNamed:@"DogSelected.png"];
        markCover.image = [UIImage imageNamed:@"MarkCover.png"];
    }else{
        //add code to pop up window asking if you want to buy or say you don't have enough cat cash

        if (totalCash >= 2000) {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Purchase" message:@"Are you sure you want to buy dog skins?" delegate:self cancelButtonTitle:@"Buy" otherButtonTitles:@"Cancel", nil];
            alert.tag = 10;
            [alert show];
        }else{
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Purchase" message:@"Sorry, but you don't have enough points to buy dog skins.  Keep playing!!" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"", nil];
            alert.tag = 11;
            [alert show];
        }

    }
}else if ([touch view] == markCover){
    if (markBought) {
        catCover.image = [UIImage imageNamed:@"CatCover.png"];
        dogCover.image = [UIImage imageNamed:@"DogCover.png"];
        markCover.image = [UIImage imageNamed:@"MarkSelected.png"];
    }else{
        //add code to pop up window asking if you want to buy or say you don't have enough cat cash
        if (totalCash >= 8000) {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Purchase" message:@"Are you sure you want to buy mark skins?" delegate:self cancelButtonTitle:@"Buy" otherButtonTitles:@"Cancel", nil];
            alert.tag = 20;
            [alert show];
        }else{
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Purchase" message:@"Sorry, but you don't have enough points to buy mark skins.  Keep playing!!" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"", nil];
            alert.tag = 21;
            [alert show];
        }
    }
}

// CATCHERS SECTION ----------------------------------------------------------------------

if ([touch view] == bucketCover) {
    bucketCover.image = [UIImage imageNamed:@"BucketSelected.png"];
    rosieCover.image = [UIImage imageNamed:@"rosieCover.png"];
}else if([touch view] == rosieCover){
    if (rosieBought) {
        bucketCover.image = [UIImage imageNamed:@"BucketCover.png"];
        rosieCover.image = [UIImage imageNamed:@"rosieSelected.png"];
    }else{
        //add code to pop up window asking if you want to buy or say you don't have enough cat cash
        if (totalCash >= 10000) {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Purchase" message:@"Are you sure you want to buy this catcher?" delegate:self cancelButtonTitle:@"Buy" otherButtonTitles:@"Cancel", nil];
            alert.tag = 30;
            [alert show];
        }else{
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Purchase" message:@"Sorry, but you don't have enough points to buy this catcher.  Keep playing!!" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"", nil];
            alert.tag = 31;
            [alert show];
    }
}

}



-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

switch (alert.tag) {
    case 10:
        if (buttonIndex == 0){
            totalCash -= 2000;
            dogPrice.text = [NSString stringWithFormat:@"Purchased"];
            catCover.image = [UIImage imageNamed:@"CatCover.png"];
            dogCover.image = [UIImage imageNamed:@"DogSelected.png"];
            markCover.image = [UIImage imageNamed:@"MarkCover.png"];
            [self buyItem];
        }
        break;

    case 11:

        break;

    case 20:
        if (buttonIndex == 0){
            totalCash -= 8000;
            markPrice.text = [NSString stringWithFormat:@"Purchased"];
            catCover.image = [UIImage imageNamed:@"CatCover.png"];
            dogCover.image = [UIImage imageNamed:@"DogCover.png"];
            markCover.image = [UIImage imageNamed:@"MarkSelected.png"];
            [self buyItem];
        }
        break;

    case 21:

        break;

    case 30:
        if (buttonIndex == 0) {
            totalCash -= 10000;
            rosiePrice.text = [NSString stringWithFormat:@"Purchased"];
            bucketCover.image = [UIImage imageNamed:@"BucketCover.png"];
            rosieCover.image = [UIImage imageNamed:@"rosieSelected.png"];
            [self buyItem];
        }
        break;

    case 31:

        break;

    default:

        break;
}

}

person Community    schedule 09.06.2014    source источник
comment
Какое собственное сообщение об ошибке?   -  person Fred    schedule 10.06.2014


Ответы (3)


Изменять:

switch (alert.tag)

to

switch (alertView.tag)

person InsertWittyName    schedule 09.06.2014

Вам не хватает закрывающей скобки на touchesBegan:withEvent:, поэтому он считает, что следующее объявление метода является частью этого тела.

В этом может помочь стандартная схема отступов, поддерживаемая вашими инструментами. Я просто скопировал, вставил и переформатировал код, и он сразу выскочил.

person Community    schedule 09.06.2014

Я не вижу, где объявлена ​​переменная «предупреждение». Вероятно, это ваш необъявленный идентификатор.

person Literphor    schedule 09.06.2014