简单的测试显示performsguewithidentifier之后的方法可以执行,但是这样的假设安全吗?
苹果的文档没有提到这个话题。
例如,下面代码块中的print
语句在测试中执行。但是假设你想把一些事情记录到在线分析服务上,或者做一些比打印声明更复杂的事情?您可以假设performSegueWithIdentifier之后的语句被保证执行,还是应该将这些代码行放在performSegueWithIdentifier之前?
performSegueWithIdentifier(TestSegue, sender: self)
print("YO YO YO")
最佳答案
好,
performSegueWithIdentifier(TestSegue, sender: self)
实际上是在函数中调用的最后一个函数。如果函数中的其他调用没有结束,它将永远不会转换您,直到执行所有操作。例如,假设您有以下代码:
@IBAction func button1Pressed(sender: AnyObject) {
performSegueWithIdentifier("toIMG", sender: nil)
let temp = imageViewController()
temp.printingStuff()
}
imageViewController如下所示:
class imageViewController: UIViewController {
[....]
func printingStuff(){
while true{
print("I love pizza")
}
}
它实际上会一直打印,永远不会将您转换到下一个视图。