问题分析
问题代码如下:
...
.onChange(of: userAnswer) {newValue in
if newValue.count <= 3 {
userAnswer = String(newValue.prefix(3))
}
}
这个报错的翻译为:
‘onChange(of:perform:)’ 在 iOS 17.0 中已弃用:改用带有两个或零个参数动作闭包的 `onChange`。
因此,当我们使用onChange时,推荐使用零参数或两个参数的onChange。
修改代码如下:
...
.onChange(of: userAnswer) {_, newValue in
if newValue.count <= 3 {
userAnswer = String(newValue.prefix(3))
}
}
这个问题在于,onChange(of)限制支持两个参数:旧值和新值,因此,我们应该使用_忽略旧值,只处理新值。