Kürzliche Objective-C-Compiler führen das Schlüsselwort 'instancetype' ein, das unter anderem für typisierte Sammlungen verwendet werden kann. . .Zweck des 'instancetype' Schlüsselwortes in 'objectWith' Methoden?
Ich sah einen anderen Zweck von instancetype, die es in "objectWith" Typ Methoden für Klassen verwendet. Zum Beispiel:
@interface Car
+(instancetype)carWithWheels:(NSArray*)wheels;
@end
Die Begründung war, dass der Compiler Typüberprüfung für initWith Methoden tun, aber nicht für ‚objectWith‘ Methoden.
Neben potenziell leichter zu geben, was ist der Vorteil anstelle des tatsächlichen Klassennamen ‚instanceType‘ zu verwenden? ZB:
@interface Car
+(Car*)carWithWheels:(NSArray*)wheels;
@end
danke. . . Wenn ich eine Methode für die Basisklasse verwende, erwarte ich im Allgemeinen, dass ich mich auf dieser Abstraktionsebene befinde. . Trotzdem kann ich jetzt sehen, wie das nützlich sein könnte. –