Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum
>
Entwickler
>
Implementierungsdatei sieht anders aus als wie im Buch
Implementierungsdatei sieht anders aus als wie im Buch
Basti76Nie
30.11.11
18:13
Hallo,
ich bin gerade dabei mir mit Hilfe eines Buches ein wenig Xcode beizubringen.
Als Anfänger reagiere ich sehr verwirrend, wenn die Darstellung aus dem Buch (Es behandelt Xcode 4.2) und meinem XCode Programm 4.2 sich unterscheiden.
Im Buch geht es darum, eine neue Obj-C Klasse anzulegen. Daraus resultieren dann eine entsprechende h-Datei sowie die m-Datei.
Laut Buch ist die m-Datei automatisch auch gleich mit zwei Methoden init und dealloc befüllt:
#import "Fahrzeug.h"
@Implementation Fahrzeug
-(id)init{
self = [super init];
if (self != nil) {
// Initialization code here.
}
return self;
}
-(void)dealloc {
// Clean-Up code here.
[super dealloc] ;
}
@end
Doch in Wirklichkeit steht in meinem Xcode nur folgendes:
#import "Fahrzeug.h"
@Implementation Fahrzeug
@end
Ist dies ein Einstellungsproblem in XCode oder stimmt mit dem Buch was nicht?
Gruß
Bastian
Hilfreich?
0
Kommentare
ExMacRabbitPro
30.11.11
19:21
Das ist nicht schlimm. Apple hat wohl von Xcode 3
4 die Template Files geändert.
...ist mir noch gar nicht aufgefallen...
Hilfreich?
0
Basti76Nie
30.11.11
22:18
Also muss ich die fehlenden Methoden eben selber aufrufen (eingeben)?
Hilfreich?
0
bmc desgin
30.11.11
23:58
Ja...
Kommt aber tatsächlich auf das verwendete Template an...
„Ask your questions...“
Hilfreich?
0
yan.kun
01.12.11
16:06
Basti76Nie
Also muss ich die fehlenden Methoden eben selber aufrufen (eingeben)?
Nein. Wenn du die beiden Methoden nicht verändern willst, musst du sie nicht abschreiben. Das hat folgenden Grund.
Objective-C ist eine objektorientierte Programmiersprache und unterstützt die sogenannten Vererbung. Schau mal in die entsprechende .h Datei deiner Klasse, da sollte folgendes stehen:
@interface Fahrzeug : NSObject
@end
: NSObject bedeutet, dass deine Fahrzeugklasse von NSObject abgeleitet wird. Dadurch werden alle Methoden und Eigenschaften von NSObject auf deine Klasse vererbt. Zu den Methoden die NSObject besitzt gehören auch init und dealloc.
Solange du nun mit der Funktionalität der vererbten Methoden zufrieden bist, musst du diese nicht "überschreiben".
-(id)init{
self = [super init];
if (self != nil) {
// Eigener Code kommt hier rein.
}
Hier passiert folgendes. Du definierst in deiner Klasse die Methode init
erneut
und überschreibst damit die Methode, die aus NSObject geerbt wurde. Über [super init] kannst du jedoch immer noch den Code aus der übergeordneten Klasse aufrufen. Das ist nicht immer sinnvoll, aber vor allem bei init und dealloc unabdingbar.
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.