Objective-C: Klassen (3) - die Description



  • 1 Klassen in Objective-C

    Dieser Artikel ist von http://www.cocoa-coding.de übernommen und behandelt wie Klassen und Objekte in Objective-C aufgebaut sind.

    1.3 description

    Einzelne Variablen einer Klasse auszugeben ist für Sie keine Herausforderung mehr, das haben Sie schon gelernt. Es ist auch wirklich sehr einfach:

    NSLog(@"Name: %@",[myPerson name]); 
    NSLog(@"Alter: %d",[myPerson age]);
    

    Aber haben Sie auch schon Mal probiert, das gesamte Objekt auf der Konsole auszugegeben, etwa so:

    NSLog(@"Person: %@",myPerson);
    

    Das Resultat ist wahrscheinlich nicht wie erwartet, aber seien Sie mal ehrlich, was haben Sie erwartet?

    Das sieht jetzt irgendwie aus wie eine Speicheradresse, vielleicht wollten Sie genau das sehen, wahrscheinlich aber ganz etwas anderes. Es wird Sie überraschen, aber das, was die Klasse ausgibt, wenn sie auf dieser Art angesprochen wird, können Sie ändern. Das Geheimnis liegt in der Methode description jeder Klasse. Noch haben Sie diese Methode nicht implementiert, also verwendet die Klasse eine Methode, die sie von NSObject geerbt hat. Was dort ausgegeben wird, haben Sie ja inzwischen gesehen.

    Versuchen Sie zu Anfang etwas ganz einfaches, indem Sie die Person-Klasse um die description -Methode ergänzen.

    -(NSString *)description 
    { 
        return @"Ich bin eine Person"; 
    }
    

    Das ist jetzt schon besser als zuvor. Noch nicht perfekt, aber ein Anfang und ein vielleicht brauchbares Resultat. Viel sinnvoller wäre es, das Personenobjekt würde mit einem Befehl all seine Daten ausgeben. Wenn Sie das wollen, sollte ihr Code in etwa so aussehen:

    -(NSString *)description 
    { 
        return[NSString stringWithFormat:@"Name :%@ ,Alter :%d",name,age]; 
    }
    

    Wie Sie sehen, kann die description eingesetzt werden, um sinnvolle Informationen von einem Objekt zu bekommen.


Anmelden zum Antworten