我正在做一些绘图,并有一个名为的类,它为我正在制作的绘图类型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 方法没有返回正确的数据。想法?建议?