Ios 索引处理文件Xcode超慢速构建和运行
我有以下方法,如果我评论一下,在模拟器或普通iPhone上构建时不会有延迟。 如果我使用这种方法,它会在运行之前延迟很多时间 这是密码Ios 索引处理文件Xcode超慢速构建和运行,ios,swift,xcode,Ios,Swift,Xcode,我有以下方法,如果我评论一下,在模拟器或普通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, heigh
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)
}
func createFirstRowView(){
设b=SKSpriteNode(图像名为:“obj_bg_card1”)
b、 xScale=0.8
b、 yScale=0.8
r=SKShapeNode(矩形:CGSize(宽度:b.size.width*4,高度:b.size.height))
r、 位置=CGPoint(x:frame.midX,y:frame.midY)
//r、 strokeColor=UIColor(红色:0,绿色:0,蓝色:0,alpha:0)
self.addChild(r)
对于0..中的i,我的建议是将此方法分为几个方法,并查看每个方法的编译时间,找出错误的位置
为此,打开编译器的调试时间函数体
选项。在Xcode中的项目中,转到“生成设置”并将其他Swift标志设置为-Xfrontend-debug time函数体
然后使用⌘-8中,您将看到最新的构建(可能还有其他构建)
接下来,右键单击您构建的目标的构建日志,并选择ExpandAllTranscripts以显示详细的构建日志
最后,您应该看到一系列绿色框,每个框代表编译过程中的一个文件或步骤。这些框中的文本可能需要一些时间(或单击)才能正确加载。如果您正确设置生成标志以显示函数编译时间,您应该会看到左侧的一行生成时间
摘自谢谢你的帮助!这个函数需要21秒才能运行……天哪……你知道我做错了什么吗?@PedroCabaco你的意思是,这个函数需要21秒才能编译?天哪。你能按照我在回答中提到的,将它分为不同的函数,并找到“长时间编译”吗函数,然后我们将尝试使用它。@Sander:谢谢。我在函数中还发现了一个16000ms的编译时间…但也发现了类似这样的行的音调:0.04ms get{}。我在某个地方读到,这可能是由于缺少类型转换,可能会减慢编译器的速度。你对此有什么见解可以分享吗?@EdouardBarbier 0.04ms get{},因为我认为它只是一个类似于var属性的getter:type{return value}。它们像往常一样编译函数。