如何解决SwiftUI-绑定到选择器的变量与选择器的选定值不匹配
在此代码中,repDuration是一个int,无论何时我在选择器中选择一个值,repDuration都将是相同的值减去1,尽管标记等于数字。当我将repDuration设置为String而不是Int时,问题消失了,有人可以解释一下,如果我想将repDuration保留为Int,该如何获取匹配的值?
Picker("Duration",selection: self.$item.repDuration) {
ForEach(1..<366) { number in
Text("\(number)").tag(number)
}
}
解决方法
您要么需要迭代器来遵循.Identifiable协议,要么在ForEach调用中指定一个ID,如下所示:
Picker("Duration",selection: self.$item.repDuration) {
ForEach(1..<366,id: \.self) { number in
Text("\(number)").tag(number)
}
}
否则,swift会返回范围序列的索引,而不是值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。