创建一个标签,该标签使用封闭内的API中的数据,该封闭返回来自该API的数据:
APIData().getRequest(epicGamesUsername: "test") { (output) in
DispatchQueue.main.async {
let winsLabelForProfile = Label().createLabel(labelText: output[0], font: "Avenir-HeavyOblique", fontSize: 45, center: center, centerX: centerX, centerY: centerY, offsetX: 0, offsetY: -(self.view.frame.width / 13), height: self.view.frame.width / 6, width: self.view.frame.width / 2, textAlignment: NSTextAlignment.center)
self.view.addSubview(winsLabelForProfile)
}
我必须将标签的创建重新放回主线程。
我的问题很简单:这样添加标签会减慢我的应用速度吗?如果是这样,有什么更好的方法来实现这一目标?
当我测试添加标签而不是异步添加它时,它看起来肯定更快。
答案 0 :(得分:0)
如果APIData().getRequest
未被频繁调用,则可以忽略交易。由于这与网络有关,我不认为是这种情况,实际上没有开销。
另外请记住,如果您遇到一些性能问题,您应该使用Xcode工具找到问题的根源,而不是请问什么是性能问题。通常人们会责怪代码中某些不对性能问题负责的部分(空间新手),并且他们浪费时间来优化正常工作的东西。
您的代码复杂性是及时的,所以如果您遇到性能问题,这不是问题。
offtopic :这段代码看起来很糟糕,难以阅读和维护。考虑使其更简单,将其分成多行 事实上,这看起来很糟糕,因为网络层要接近UI部分。您没有应该维护数据结构和业务逻辑的数据模型。