问题描述
在Xcode中显示Text文本时报如下错误:
No exact matches in call to initializer
经查询发现问题为Text视图只接受String类型的值,因此需要将selectedNumber字段转为字符串才能显示。
解决方案
使用插值的方式,将selectedNumber由Number类型转换为String类型。
Text(selectedNumber)
类似问题
这一报错也常表现于将数字插入到Text()中。
Section("age") {
Text(friend?.age ?? 0)
}
出现 No exact matches in call to initializer 错误的原因是 Text 初始化时的参数类型不正确。Text 的构造器需要接受 String 类型参数,而 friend?.age ?? 0 的类型是 Int。Text 不能直接接收非字符串类型的数据。
解决方法
将 friend?.age ?? 0 转换为字符串即可。可以使用以下方法之一:
1、使用 String() 初始化器:
Text(String(friend?.age ?? 0))
2、使用字符串插值:
Text("\(friend?.age ?? 0)")