arrays - 为什么我会收到此错误消息(“实例方法 'appendInterpolation(_:formatter:)' 要求 'Any' 继承自 'NSObject'”)?)
问题描述
我正在尝试在我的应用程序中创建一个列表作为排行榜。当点击另一个主视图上的按钮时,它应该添加一个新值。但是,我不断收到此错误,我不知道为什么。这是列表视图的代码:
'''
struct scoreView: View {
@Binding var scoreTracker: Int
@Binding var gameTracker: Int
@Binding var gameScores: [Any]
@State var counter = 0
var body: some View {
Text("Scores: ")
VStack {
List {
ForEach(1..<gameTracker) {
Text("Game \($0): \(gameScores[gameTracker]) ")
}
}
}
}
}
''' 我在我的 contentView 上创建了一个数组,以便在单击按钮一定次数后为其附加一个值。但是,当我尝试在列表文本中插入该值时,我收到此错误。这怎么可能解决?
解决方案
这是一种类型的安全警告。字符串插值需要一个字符串可转换对象。任何快速的对象都可以表示为字符串,但如果没有显式实现,它将是有关类或结构名称、地址等的信息。这很可能不是您想在字符串上看到的,这就是为什么会出现此错误的原因。
您可以使用以下方法使其静音String(describing:
:
struct scoreView: View {
@Binding var scoreTracker: Int
@Binding var gameTracker: Int
@Binding var gameScores: [Any]
@State var counter = 0
var body: some View {
Text("Scores: ")
VStack {
List {
ForEach(1..<gameTracker) {
Text("Game \($0): \(String(describing: gameScores[gameTracker])) ")
}
}
}
}
}
推荐阅读
- java - Slf4j log.debug 在函数 bean 中抛出 NPE
- amazon-web-services - 在 lambda 环境变量中存储 Web 服务 URL
- xaml - 禁用标签上的剪辑
- python - 使用 SQLalchemy 从 Docker 容器连接到外部 MySQL 数据库
- c++ - std::reverse_iterator 是否适用于适应范围?
- java - Java.persistance.rollback.rollback 异常
- android - 为什么在 Java 错误中不推荐使用底部导航?
- spring-boot - 如何摆脱为id“null”映射的No PasswordEncoder
- apache-kafka - Debezium 流 数值解码
- string - 修剪带有任意数量下划线的字符串,直到保留一定数量的下划线