gpt4 book ai didi

swift - 执行使用来自可选变量的方法

转载 作者:行者123 更新时间:2023-11-30 14:10:17 24 4
gpt4 key购买 nike

如果我需要执行一个方法,其多个参数的原始源是可选的,那么在执行该方法之前进行多个可选绑定(bind)是最干净的方法吗?

例如UIStoryboardSegue的sourceViewController和destinationViewController都是AnyObject?我需要使用源的 navigationController 来执行某些操作。

 override func perform() {
var svc = self.sourceViewController as? UIViewController
var dvc = self.destinationViewController as? UIViewController

if let svc = svc, dvc = dvc {
svc.navigationController?.pushViewController(dvc, animated: true)
}
}

最佳答案

如果 View Controller 是 Interface Builder 中设计的 segue 的一部分,并且您实际上知道它们不为零,则可以解开它们

override func perform() {
var svc = self.sourceViewController as! UIViewController
var dvc = self.destinationViewController as! UIViewController

svc.navigationController!.pushViewController(dvc, animated: true)
}

否则如果源 Controller 可能为nil,则只有 Controller 不为nil时才会执行push命令,就像在Objective-C中向nil发送消息

override func perform() {
var svc = self.sourceViewController as? UIViewController
var dvc = self.destinationViewController as? UIViewController

svc.navigationController?.pushViewController(dvc, animated: true)
}

关于swift - 执行使用来自可选变量的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31855483/

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