In Figure 29.3 - Initializer chain
The image illustrates that the init method for “Appliance” calls initWithProductName: for “OwnedAppliance” (which would then call initWithProductName: firstOwnerName). However, in Main.m you have us input:
Appliance *a = [[Appliance alloc] init];
NSLog(@"a is %@", a);
This defaults with the name of “Unknown” for the appliance and then the default 120 volts. It doesn’t appear to me that this “Appliance” initializer relates at all to firstOwnerName in “OwnedAppliance” because I can’t find any way to produce the OwnerName results (even if they are nil).