gpt4 book ai didi

ios - Xcode 继续构建在 Swift 3 之上

转载 作者:搜寻专家 更新时间:2023-10-30 22:12:37 26 4
gpt4 key购买 nike

我已将我的 Swift 2.3 项目转换为 Swift 3。现在编译器不再抛出任何错误,但它会继续编译。 CPU 几乎是 100%,如果您不停止它,它会持续编译大约 50 分钟或更长时间。

Xcode 一直说 Building .. |编译 Swift 源文件

在构建日志中,它总是在相同的 swift 文件上停止。 swift 文件只是简单的模型类,所以我不知道问题出在哪里。

我在 swift 2 中遇到了同样的问题,但这是由 ?? 运算符引起的。我重构了代码以删除 ?? 运算符,所以它不能再这样了。

我怎样才能找出是什么让编译时间变得无穷无尽?

我的模型看起来都一样:

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 是:

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

model 只是一个基类,它还有另一个 json 初始化。

当我在构建日志上运行分析器时,我所有的模型都花了很长时间来创建 NSDictionary。但是为什么?

最佳答案

所以问题是我们有很多这样创建的字典:

let dict = ["key": value, "key2": value2]

如果您将其重写为

var dict: [String: Any] = [String: Any]()
dict["key"] = value
dict["key2"] = value2

然后编译器神奇地只需要每个模型 15 到 20 毫秒而不是每个模型 2000 毫秒。

您可以使用构建时分析器应用自行尝试:-)

关于ios - Xcode 继续构建在 Swift 3 之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39741685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com