Hej,
har fastnat rejält på uppgift nr 2 i kapitel 10 i boken Programming in Objective-C(Stephen Kochan).
Förstår inte riktigt vad han menar med följande:
Given that you label the method developed in exercise 1 the designated initializer for the Rectangle class, and based on the Square and Rectangle class definitions from Chapter 8, add an initializer method to the Square class according to the following declaration:
-(Square *) initWithSide: (int) side;
Vad menar han med "Given that you label the method..." hur då? Är det den metoden som anropar
[super init]
?
Tycker hela uppgiften är luddig, jag fixar att lägga till metoden och skriva koden men jag vet ju inte om jag gör fel. Jag har skrivit följande:
-(Square *) initWithSide: (int) side
{
self = [super init];
if (self)
[self setSide: side];
return self;
}
Hittade följande hos Apple om The Designated Initializer:
The designated initializer is the method in each class that guarantees inherited instance variables are initialized(by sending a message to
super
to perform an inherited method). It's also the method that does most of the work, and the one that other initialization methods in the same class invoke.
Hur gör man detta? Tycker det verkar krångligt som satan... speciellt då om man inte har
något speciellt man vill ändra på, så måste man ändå anropa den init... som tar flest argument?
Ah jag vete fan jag är trött i skallen nu har försökt att få klarhet i detta dom senaste två dygnen och desto mer jag läser runt på nätet desto luddigare blir det.
Hjäääälp!