Ios NSDate代码未迁移到Swift 3.0

Ios NSDate代码未迁移到Swift 3.0,ios,swift3,Ios,Swift3,我正在尝试将我的代码转换为Swift 3.0,在使用迁移工具后转换某个代码块时遇到困难 在SWIFT 3.0迁移之前: import Foundation extension NSDate { convenience init(posixTime: Double) { self.init(timeIntervalSince1970: Double(posixTime) / 1000.0) } } 迁移后工具: extension Date { init

我正在尝试将我的代码转换为Swift 3.0,在使用迁移工具后转换某个代码块时遇到困难

在SWIFT 3.0迁移之前:

import Foundation

extension NSDate {
    convenience init(posixTime: Double) {
        self.init(timeIntervalSince1970: Double(posixTime) / 1000.0)
    }
}
迁移后工具:

extension Date {
    init(posixTime: Double) {
        //ERROR IN THE LINE BELOW: "'init' is a member of the type; use 'type(of: ...)' to initialize a new object of the same dynamic type"
        (self as NSDate).init(timeIntervalSince1970: Double(posixTime) / 1000.0)
    }
}
我按照Xcode的建议将“init”替换为“type(of:init)”:


然后,Xcode要求我在“of:”前面添加一个逗号,这会导致更多错误(以及更多将逗号放在错误位置的建议)。在Swift 3中使用此代码块的正确方法是什么

您可以轻松地从init方法中删除
便利性

extension Date {
    init(posixTime: Double) {
        self.init(timeIntervalSince1970: Double(posixTime) / 1000.0)
    }
}

似乎迁移工具在以前的代码中将
self
实例错误地转换为NSDate。

您可以轻松地从init方法中删除
便利性

extension Date {
    init(posixTime: Double) {
        self.init(timeIntervalSince1970: Double(posixTime) / 1000.0)
    }
}

似乎迁移工具在您以前的代码中将
self
实例错误地转换为NSDate。

是的,这就是解决方案。我遇到过一些奇怪的事情,迁移增加了方便,然后又增加了类型。苹果公司生产的POS软件真是太棒了。是的,不幸的是,自动迁移工具仍然需要人工检查。是的,这就是解决方案。我遇到过一些奇怪的事情,迁移增加了方便,然后又增加了类型。苹果的POS软件真是太棒了。是啊,不幸的是,自动迁移工具仍然需要人工检查。