私は Objective C と Xcode の初心者で、一度に 1 つずつ学習しようとしています。特定の問題について何日も頭を悩ませていて、解決策を見つけるのに非常に苦労しています。辞書を使用してピッカーにデータを入力する UIPickerView アプリを作成しています。arrayStates は左側のコンポーネントに入る州であり、arrayCities は State のキーであるその州にある都市です。都市は右側のコンポーネントに入ります。問題はコードのブロックに絞り込まれたと思います.ピッカーに値を入力しようとすると、クラッシュします。このコード ブロックをコメント アウトすると、正常に実行されます (ピッカー内のテキストとして疑問符がある場合のみ)。次のエラーが表示されます。
NSInvalidArgumentException', reason: '-[__NSCFString superview]: unrecognized selector sent to instance
エラーの原因となっている .m ファイルのコード ブロックは次のとおりです。
-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent: (NSInteger)component reusingView:(UIView *)view {
if (component == 0) {
return [arrayStates objectAtIndex:row];
}
else {
UILabel *lblCity=[[UILabel alloc] initWithFrame:CGRectMake(5,0,220,50)];
lblCity.text= [arrayCities objectAtIndex:row];
lblCity.backgroundColor = [UIColor clearColor];
lblCity.font = [UIFont boldSystemFontOfSize:18];
return lblCity;
}
}
以下は私がコードを変更したもので、うまく動作しています! 迅速かつ的確なご回答ありがとうございます!!
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (component == 0)
{
return [arrayStates objectAtIndex:row];
}
else
{
return [arrayCities objectAtIndex:row];
}
}