UIPickerViewの使用方法を学習しようとしていますが、アラートビューが常に配列の最初の要素(ピッカー)を他の要素と比較して出力する理由がわかりません。ピッカーのボタン押下を次のように定義しています。
- (IBAction)buttonPressed {
NSInteger row = [myPicker selectedRowInComponent:0];
NSString *s = [myPickerData objectAtIndex:row];
NSLog(@"%@", s);
NSString *title = [[NSString alloc] initWithFormat:@"You selected, %@", s];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title
message:@"Message"
delegate:nil
cancelButtonTitle:@"ok"
otherButtonTitles:nil];
[alert show];
[alert release];
[title release];
}
私の配列は次のように定義されています:
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *array = [[NSArray alloc] initWithObjects:@"0", @"1", @"2", nil];
self.myPickerData = array;
[array release];
}
ピッカーが変更されたときに出力をログに記録すると、それに応じて値が0、1、2に変更されます。
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
NSLog(@"%@", [myPickerData objectAtIndex:row]);
}
ただし、アラートビューは機能しません。ですから、ここで何が間違っているのかわかりません。