Ich möchte eine NSObject-Unterklasse für die Initialisierung ohne Parameter einen fehlbaren Initialisierer bereitstellen. Mein übergeordnetes Ziel ist die Rückgabe von nil, wenn diese Klasse auf einer Betriebssystemversion kleiner als 8.0 initialisiert wird.Parameterless Failable Initialisierer für eine NSObject-Unterklasse
bei dieser Mein Versuch ist unter:
class MyObject: NSObject {
override init?() {
super.init()
if floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_7_1 {
return nil
}
}
}
jedoch Dieser Code führt die folgenden Compiler-Fehler.
Ist es möglich, init() zu überschreiben, um eine fehlbare Implementierung in einer Unterklasse bereitzustellen? Oder gibt es einen besseren Weg, dieses Ziel zu erreichen?
Danke für die kreative Arbeit um mein Problem herum. Wenn ich jedoch mehr darüber nachdenke, denke ich, dass eine Fabrikmethode (z. B. Pauls Vorschlag) hier die sauberere Lösung sein könnte. –
Diese Dummy-Parameter-mit-einem-Standard-Wert-Lösung ist böse, aber brillant. –