我有以下方法,如果我评论它,在模拟器或普通 iPhone 上构建时没有延迟。 如果我使用此方法,它会延迟很多时间才能运行。
这是代码
func createFirstRowView() {
let b = SKSpriteNode(imageNamed: "obj_bg_card1")
b.xScale = 0.8
b.yScale = 0.8
r = SKShapeNode(rectOf: CGSize(width: b.size.width*4, height: b.size.height))
r.position = CGPoint(x: frame.midX, y: frame.midY)
//r.strokeColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0)
self.addChild(r)
for i in 0..<4{
let bg = SKSpriteNode(imageNamed: "obj_bg_card1")
bg.xScale = 0.8
bg.yScale = 0.8
let lel = 0.5 + (Double(i)*1)
bg.position = CGPoint(x: -bg.size.width*2 + bg.size.width*CGFloat(lel), y: 0)
r.addChild(bg)
}
r.position = CGPoint(x: frame.midX, y: frame.midY*1.4)
let q = SKSpriteNode(imageNamed: "obj_bg_card1")
q.xScale = 0.8
q.yScale = 0.8
t = SKShapeNode(rectOf: CGSize(width: q.size.width*4, height: q.size.height))
t.position = CGPoint(x: frame.midX, y: frame.midY)
//t.strokeColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0)
self.addChild(t)
for k in 0..<4{
let bg = SKSpriteNode(imageNamed: "obj_bg_card1")
bg.xScale = 0.8
bg.yScale = 0.8
let lel = 0.5 + (Double(k)*1)
bg.position = CGPoint(x: -bg.size.width*2 + bg.size.width*CGFloat(lel), y: 0)
t.addChild(bg)
}
t.position = CGPoint(x: frame.midX, y: frame.midY*0.6)
}
我读到这是由于代码效率低下造成的...任何人都可以发现我的错误吗?
最佳答案
我的建议是把这个方法分成几个,看看每个方法的编译时间,找出错误的地方
为此打开编译器的 debug-time-function-bodies
选项。在 Xcode 中的项目中,转到build设置并将其他 Swift 标志设置为 -Xfrontend -debug-time-function-bodies。
然后使用 ⌘-8 跳转到 Build Report 导航器,您将在其中看到最新的构建(可能还有其他构建)。
接下来,右键单击您构建的目标的构建日志,然后选择“Expand All Transcripts”以显示详细的构建日志。
最后,您应该会看到一系列绿色框,每个框代表一个文件或编译过程中的一个步骤。这些框中的文本可能需要一些时间(或单击)才能正确加载。如果您正确设置构建标志以显示函数编译时间,您应该会在左侧看到一行构建时间。
取自here
关于ios - 索引处理文件 Xcode 超慢构建和运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41645102/