Sto cercando di estendere la classe NSDictionary in Swift per contenere un NSDate impostato su init(). Quando aggiungo il mio init personalizzato(), ottengo l'errore compilatore:Impossibile sovrascrivere l'inizializzatore di NSDictionary in Swift
'required' initializer 'init(dictionaryLiteral:)' must be provided by subclass of 'NSDictionary'
Tuttavia, quando aggiungo che inizializzatore utilizzando completamento automatico, ottengo il seguente errore:
Declarations from extensions cannot be overridden yet
C'è qualche modo per sovrascrivere l'inizializzatore di NSDictionary o può Swift non gestirlo ancora?
Ecco la mia classe:
class DateParam : NSDictionary {
let date : NSDate
init(date: NSDate) {
super.init()
self.date = date
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
required convenience init(dictionaryLiteral elements: (NSCopying, AnyObject)...) {
fatalError("init(dictionaryLiteral:) has not been implemented")
}
}
quindi credo che non è ancora possibile eseguire l'override del inizializzatore per NSDictionary a Swift. Il compilatore richiede di eseguire l'override di "init (dictionaryLiteral :)" ma allo stesso tempo non lo consente. Spero davvero che Swift aggiunga presto le sue capacità. – Mel
Zoppia di mela! –
Ancora ** non ** risolto con Swift 4. –