无法覆盖Swift中NSDictionary的初始值设定项

无法覆盖Swift中NSDictionary的初始值设定项,swift,nsdictionary,swift-extensions,Swift,Nsdictionary,Swift Extensions,我试图在Swift中扩展类NSDictionary,以包含在init()上设置的NSDate。添加自定义init()时,会出现编译器错误: 必须由提供“必需的“初始值设定项”init(DictionaryTerral:)” “NSDictionary”的子类 但是,当我使用auto complete添加初始值设定项时,会出现以下错误: 扩展的声明还不能被重写 有没有办法覆盖NSDictionary的初始值设定项,或者Swift还不能处理这个问题 这是我的班级: class DateParam :

我试图在Swift中扩展类NSDictionary,以包含在init()上设置的NSDate。添加自定义init()时,会出现编译器错误:

必须由提供“必需的“初始值设定项”init(DictionaryTerral:)” “NSDictionary”的子类

但是,当我使用auto complete添加初始值设定项时,会出现以下错误:

扩展的声明还不能被重写

有没有办法覆盖NSDictionary的初始值设定项,或者Swift还不能处理这个问题

这是我的班级:

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")
    }
}

Swift有一个官方的扩展机制,用于向类添加方法,但是当子类重写扩展方法时,编译器会引发错误。不过,错误文本看起来很有希望(添加了强调):

来自扩展的声明不能被覆盖 正是这个悬而未决的“尚未”让我相信苹果的工程师们已经意识到了设计模式,比如受保护的扩展模式,并将更新Swift以支持它们

检查

所以我想在Swift中还不可能覆盖NSDictionary的初始值设定项。编译器要求您重写“init(dictionaryTerral:)”,但同时不允许这样做。我真的希望Swift很快添加该功能。Swift 4仍然没有修复。
但是
已经被“不支持扩展中的重写声明”所取代(