gpt4 book ai didi

ios - Swift 中的 for 循环有问题

转载 作者:可可西里 更新时间:2023-11-01 00:21:35 25 4
gpt4 key购买 nike

我试图在 Swift 中遍历 ViewController 数组,但不幸的是我遇到了我不理解的编译错误。这是我的相关代码:

let alertController = UIAlertController(title: "Error", message: "You have an error.", preferredStyle: .Alert)

let OKAction = UIAlertAction(title: "OK", style: .Default) { (action:UIAlertAction!) in
print("you have pressed OK button");
//below is my loop causing me trouble
for (i in 0..< self.navigationController?.viewControllers.count) {
if (self.navigationController?.viewControllers[i].isKindOfClass(MyViewController) == true) {
self.navigationController?.popToViewController(self.navigationController!.viewControllers[i] as! MyViewController, animated: true)

break;
}
}
}
alertController.addAction(OKAction)

self.presentViewController(alertController, animated: true, completion:nil)

但是,我不断收到 Xcode 的错误消息,要求我在 for 循环语句中插入“,”作为分隔符。谁能看出我做错了什么?

最佳答案

为什么不在语法中使用 for... 而不是使用数字 for 循环?

if let navController = self.navigationController {
for aVC in navController.viewControllers {
if aVC..isKindOfClass(MyViewController) {
navController.popToViewController(aVC, animated: true)
break
}
}
}

我使用可选绑定(bind)将 self.navigationController? 折叠为 navController,并使用 for...in 语法。

此外,我认为您不需要将 View Controller 转换为 MyViewController 类,因为您使用它所做的只是将它发送给 popToViewController 函数,该函数需要任何 UIViewController

编辑:

如果您需要数组中项目的索引,您可以在数组上使用 enumerate 函数,它返回一组元组:

for (index, aVC) in navController.viewControllers.enumerate() {
//Do stuff
}

关于ios - Swift 中的 for 循环有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39170379/

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