Ich habe mein Swift 2.3-Projekt in swift 3 umgewandelt. Nun wirft der Compiler keine Fehler mehr, aber er kompiliert weiter. CPU ist wie 100% und es kompiliert für 50 Minuten oder mehr, wenn Sie es nicht stoppen.Xcode baut weiter auf Swift 3
Xcode sagt immer Building .. | Swift-Quelldateien kompilieren
Im Build-Protokoll stoppt es immer auf den gleichen schnellen Dateien. Die schnellen Dateien sind nur einfache Modellklassen, daher weiß ich nicht, was das Problem sein könnte.
Ich hatte das gleiche Problem in Swift 2, aber das wurde durch den Operator ??
verursacht. Ich habe den Code umstrukturiert, um den Operator ??
zu entfernen, so dass es nicht mehr sein kann.
Wie kann ich herausfinden, was die Kompilierzeit zu endlos verlangsamt?
Meine Modelle sehen alle gleich aus:
class Test: InputContract {
var appointmentDate: Date!
var startTime: String!
var endTime: String!
var registerDescription: String!
var subjectKey: String!
var channelCode: String!
var relationManagerHrId: String = ""
var employeeUserCode: String = ""
var smsReminderMobileNumber: String = ""
var smsReminderMobileNumberSequence: String!
var contactPhoneNumber: String = ""
var contactPhoneNumberSequence: String!
var smsReminder: Bool = false
override func retrieveInputDictionary() -> NSDictionary {
return ["description" : self.registerDescription, "appointmentDate" : Utils.formattedDate(self.appointmentDate),
"startTime" : self.startTime, "endTime" : self.endTime, "subjectKey" : self.subjectKey, "channelCode" : self.channelCode, "smsReminder" : self.smsReminder ? "true" : "false", "relationManagerHrId" : self.relationManagerHrId, "employeeUserCode" : self.employeeUserCode,
"smsReminderMobileNumber" : self.smsReminderMobileNumber, "contactPhoneNumber" : self.contactPhoneNumber, "smsReminderMobileNumberSequence" : self.smsReminderMobileNumberSequence, "contactPhoneNumberSequence" : self.contactPhoneNumberSequence
]
}
}
InputContract ist:
protocol InputDictionaryMapper {
func retrieveInputDictionary() -> NSDictionary
func retrievePublicInputDictionary() -> NSDictionary
}
class InputContract: Model, InputDictionaryMapper {
func retrieveInputDictionary() -> NSDictionary {
fatalError("Each inputContract implementation must implement it's own method: \(NSStringFromClass(type(of: self)))")
}
func retrievePublicInputDictionary() -> NSDictionary {
fatalError("Each inputContract implementation must implement it's own method: \(NSStringFromClass(type(of: self)))")
}
required init(json: JSON) {
fatalError("init(json:) has not been implemented")
}
override init() {
super.init()
}
}
und das Modell ist nur eine Basisklasse, die auch eine andere init für json hat.
Wenn ich den Analysator auf dem Build-Protokoll ausführen, dann nehmen alle meine Modelle Soo lange, um das NSDictionary zu erstellen. Aber warum?
1. Haben Sie versucht, das Projekt zu säubern/Xcode/etc neu zu starten? 2. Haben Sie versucht, diese Swift-Datei in einem separaten Projekt zu kompilieren? Wenn nicht, posten Sie bitte den Inhalt der Swift-Datei, an der er hängt. – fiks
Hallo, ich habe das gleiche Problem, hast du irgendeine Lösung? – Rock
@fiks Ich habe meine Frage mit der Klasse bearbeitet. – user1007522