1
코드를 Swift 3.0으로 변환하려고하는데 마이그레이션 도구를 사용한 후 특정 코드 블록을 변환하는 데 어려움이 있습니다.NSDate 코드가 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)
}
}
나는 "(: 초기화의) 유형"과 "초기화"를 대체 할 Xcodes 조언을 따라
extension Date {
init(posixTime: Double) {
//ERROR IN THE LINE BELOW: "Expected expression in list of expressions"
(self as NSDate).type(of: init)(timeIntervalSince1970: Double(posixTime)/1000.0)
}
}
Xcode는 "of :"앞에 쉼표를 추가하도록 요청합니다. 그러면 더 많은 오류가 발생할 수 있습니다 잘못된 장소에있는 mas). Swift 3에서이 코드 블록을 사용하는 올바른 방법은 무엇입니까?
그래,이게 해결책이야. –
나는 마이그레이션이 편리함을 더하고 다음과 같은 유형을 추가 한 이상한 일들을 보았습니다. POS 소프트웨어 사과가 만든 것. –
아쉽게도 자동 마이그레이션 도구는 여전히 수동 검사가 필요합니다. – ramacode