私はiOS開発に慣れていないので、これはおそらく修正が簡単です。ペン先のUIPickerViewを制御するためのプロトコルを採用しているカスタムビューコントローラーがあります。iPadシミュレーターで、リストの最初の項目またはリストの最後の項目を超えてピッカーをスクロールしてリリースしない限り、すべてが正常に機能します。次のエラーが発生します。
スレッド1:プログラム受信信号:「EXC_BAD_ACCESS」
私のmain.mクラスのこの行:
int retVal = UIApplicationMain(argc、argv、nil、nil);
関連するコードは次のとおりです。
ViewController.h
@interface BirdColorViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource> {
IBOutlet UIPickerView *birdColorPicker;
NSArray *birdColors;
}
@property (nonatomic,retain) IBOutlet UIPickerView *birdColorPicker;
Viewcontroller.m
- (void)dealloc
{
[birdColorPicker release];
[super dealloc];
}
..。
- (void)viewDidLoad
{
[super viewDidLoad];
birdColors = [NSArray arrayWithObjects:@"Blue",@"Yellow",@"Red",nil];
birdColorPicker.delegate = self;
birdColorPicker.dataSource = self;
}
...
#pragma mark - UIPickerViewDataSource methods
//(UIPickerView *)thePickerView
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return [birdColors count];
}
#pragma mark - UIPickerViewDelegate methods
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return [birdColors objectAtIndex:row];
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
// Set value in prefs/model
}