2017-02-06 1 views
1

ich in Swift Code hatte 2, jetzt hat es Fehler in Swift 3:'init' ist ein Mitglied des Typs; Verwendung 'Art (von: ...)' ein neues Objekt zu initialisieren

Der Fehler ist:

'init' is a member of the type; use 'type(of: ...)' to initialize a new object of the same dynamic type

extension Date 
{ 

    init(dateString:String) { 
     let dateStringFormatter = DateFormatter() 
     dateStringFormatter.dateFormat = "yyyy-MM-dd" 
     dateStringFormatter.locale = Locale(identifier: "en_US_POSIX") 
     let d = dateStringFormatter.date(from: dateString)! 

     // error is here : 'init' is a member of the type; use 'type(of: ...)' to initialize a new object of the same dynamic type 
     (self as NSDate).init(timeInterval:0, since:d) } 
} 
+2

Was ist mit '(selbst als NSDate)'? Geben Sie "Date" hat eigene 'init' mit gleichen Parametern, warum nicht verwenden Sie es anstelle von eitel Typ Casting? Auch "init" ist eine Methode auf Klassenebene, nicht auf Instanzebene - da kommt der Fehler her. – user28434

+0

richtig, fest, danke! – AVEbrahimi

Antwort

0

Versuchen Sie super.init(timeInterval:0, since:d)

+0

ERROR: 'super' kann nicht außerhalb der Klassenmitglieder verwendet werden 'code' Erweiterung Datum { init (jsonDate: String) { let prefix = "/ Date (" let Suffix = ") /" wenn jsonDate .hasPrefix (Präfix) && jsonDate.hasSuffix (Suffix) { let von = jsonDate.characters.index (jsonDate.startIndex, offsetBy: prefix.characters.count) let zu = jsonDate.characters.index (jsonDate.endIndex, offsetBy : -suffix.characters.count) Wache lassen Millisekunden = Doppelte (jsonDate [aus ..

Verwandte Themen