Я делаю некоторый рисунок и есть класс с именем Draw2DHelper
, определяющий enum
констант для типов рисунков, которые я делаю, и свойство drawingType
, которая использует типы:Сравнить с перечислением NSNumber
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 не возвращает правильные данные. Мысли? Предложения?
Типы объектов обычно не ... typedef'd. Возможно, вы хотели сделать typedef NSUInteger? – CodaFi