私はいくつかの描画を行っており、作成している描画のタイプの定数と、そのタイプを使用するプロパティをDraw2DHelper
定義するという名前のクラスがあります。enum
drawingType
enum {
LINE_DRAWING,
BEZIER_PATH_DRAWING,
FRACTAL_DRAWING,
POINT_DRAWING
};
typedef NSNumber * drawingTypes;
@property drawingTypes drawingType;
前のシーンでは、描画タイプを反映するように UIPickerView を定義し、それにバインドされている配列にこのコードを入力しています (これが NSNumber を使用している理由です)。ピッカーとそれがデータを返す方法。親 ViewController に次のコードがあります。
NSNumber *myNum1 = [NSNumber numberWithInt:BEZIER_PATH_DRAWING];
NSNumber *myNum2 = [NSNumber numberWithInt:LINE_DRAWING];
NSNumber *myNum3 = [NSNumber numberWithInt:POINT_DRAWING];
NSNumber *myNum4 = [NSNumber numberWithInt:FRACTAL_DRAWING];
_nameArray = [[NSArray alloc] initWithObjects: @"Bezier Path", @"Line Drawing", @"Point Drawing", @"Fractal Drawing", nil];
_typeArray = [[NSArray alloc] initWithObjects: myNum1, myNum2, myNum3, myNum4,nil];
後で、pickerView didSelectRow メソッドで私はこれを持っています:
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent: (NSInteger)component
{
if (component == 0)
{
_drawingType = [_typeArray objectAtIndex: row];
NSString *drawingTypeName = [ _nameArray objectAtIndex:row ] ;
}
}
_drawingType が割り当てられると、奇妙なことが起こっています。ポインターが正しいかどうかわかりません...文字列を使用してピッカーのビジュアルを設定しています-比較を簡単にするためにそれらを使用する必要がありますか? 私は何を間違っていますか?配列をピッカーに正しくバインドしていない可能性があるため、didSelectRow メソッドが正しいデータを返していない可能性があると考えています。考え?提案?