Одиночный сборщик, включающий оператор If — не работает

#objective-c #xcode

#objective-c #xcode

Вопрос:

У меня есть единый сборщик, и я хочу включить оператор if, чтобы в зависимости от возвращаемого текста отображение было другим, при этом возникли некоторые проблемы с реализацией этого, код выглядит следующим образом:

 @implementation ButtonFive

@synthesize singlePicker;
@synthesize pickerData;

-(IBAction)buttonPressed {
NSInteger row = [singlePicker selectedRowInComponent:0];
NSString *selected = [pickerData objectAtIndex:row];




 if ([selected isEqualToString: @"MC860"])
     //if ([selected isEqualToString: @"MC860"])
 {
 NSString *title = [[NSString alloc] initWithFormat: @"Use the maintenance utility to upgrade the %@!", selected];

 }

 else {
 NSString *title = [[NSString alloc] initWithFormat: @"try this %@!", selected];

 }



//NSString *title = [[NSString alloc] initWithFormat: @"you selected %@!", selected];


UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message : @"Thank you for choosing." delegate:nil cancelButtonTitle :@"Continue" otherButtonTitles :nil];
[alert show];
[alert release];
[title release];
}


- (void)viewDidLoad {
NSArray *array = [[NSArray alloc]        initWithObjects:@"B410",@"B411",@"B440",@"B840",@"MC860", @"MC861",@"MC861",@"B410",@"B411",@"B440",@"B840",@"MC860", nil];
self.pickerData = array;
[array release];
[super viewDidLoad];
}

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
        return 1;
}

-(NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component
{
return [pickerData count];
}

-(NSString *)pickerView:(UIPickerView *)pickerView
        titleForRow:(NSInteger)row
       forComponent:(NSInteger)component 
{
return[pickerData objectAtIndex:row];
}
  

текст заголовка не распознается, но я думаю, что, возможно, я ошибаюсь, любая помощь очень ценится.

Ответ №1:

Вы должны получать ошибки компиляции.. причина очевидна… вы объявляете заголовок в блоке if и else, но вы должны объявить его перед блоком if-else !

ie. вы должны использовать этот код вместо своего-

 NSString *title;


if ([selected isEqualToString:@"MC860"])//if ([selected isEqualToString: @"MC860"])
{
    title = [[NSString alloc] initWithFormat:@"Use the maintenance utility to upgrade the %@!", selected];
}
else {
    title = [[NSString alloc] initWithFormat:@"try this %@!", selected];

}