Vergleichen enum mit NSNumber

Mache ich eine Zeichnung und eine Klasse mit dem Namen Draw2DHelper definiert enum von Konstanten für die Arten von Zeichnungen, die ich mache, und eine Eigenschaft drawingType verwendet die Typen:

enum {
    LINE_DRAWING,
    BEZIER_PATH_DRAWING,
    FRACTAL_DRAWING,
    POINT_DRAWING
};
typedef NSNumber * drawingTypes;


@property drawingTypes drawingType;

in einer früheren Szene, ich bin die Definition einer UIPickerView zu reflektieren, meine Zeichnung Typen und füllen Sie das array, das gebunden ist, um es mit diesem code (das ist, warum ich bin mit NSNumber) :
Ich habe jetzt verfolgt, das problem, um etwas über die Farbauswahl und die Art, wie die Daten zurückgegeben werden. Ich habe folgenden code in meiner Eltern 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];

später, in der pickerView didSelectRow Methode habe ich dieses:

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent: (NSInteger)component
{
    if (component == 0)
    {
        _drawingType = [_typeArray objectAtIndex: row];
        NSString *drawingTypeName = [ _nameArray objectAtIndex:row ] ;
    }
}

etwas funky ist, die passiert, wenn _drawingType zugewiesen bekommt; ich bin mir nicht sicher, ich habe die Zeiger korrekt... ich bin mit strings zu füllen, die visuals des picker - sollte ich einfach nutzen, um Ihnen einen Vergleich zu erleichtern? Was mache ich falsch?
Ich denke, ich kann nicht gebunden haben, das array korrekt an den picker so die didSelectRow Methode ist nicht die Rückgabe der richtigen Daten. Gedanken? Vorschläge?

  • Objekttypen sind nicht in der Regel... typedef würde. Vielleicht haben Sie gedacht, um typedef NSUInteger?
InformationsquelleAutor marina | 2013-03-04
Schreibe einen Kommentar