gpt4 book ai didi

swift - 在 Swift 中单解包内部 block

转载 作者:行者123 更新时间:2023-11-28 07:15:00 25 4
gpt4 key购买 nike

这给了我一个错误:

NSNotificationCenter.defaultCenter().addObserverForName(MyNotification, object: nil, queue: nil) { (notification: NSNotification?) in
self.variable?.myMethod()
}

但这很好:

NSNotificationCenter.defaultCenter().addObserverForName(MyNotification, object: nil, queue: nil) { (notification: NSNotification?) in
println()
self.variable?.myMethod()
}

知道为什么以及如何解决吗?

谢谢。

最佳答案

您看到的是“隐式返回”。 Swift 假设如果你有一个表达式作为闭包的实现,那么它会从闭包中返回该行代码的结果。这是 Apple 的 Swift Programming Language 中记录的优化。文本(检查闭包介绍中的最后一段/项目符号列表)。

因此,如果您不想从第一个语句隐式返回,则需要有一个 return 语句。

所以你的代码应该是这样的:

NSNotificationCenter.defaultCenter().addObserverForName(MyNotification, object: nil, queue: nil) { (notification: NSNotification?) in
self.variable?.myMethod()
return
}

关于swift - 在 Swift 中单解包内部 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26707266/

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