SwiftUI中#Preview出现“AnimalListItemView初始化器结果未使用”警告的解决求助
SwiftUI中#Preview出现“AnimalListItemView初始化器结果未使用”警告的解决求助
嘿,别担心,这真的不是什么傻问题,很多刚用新Preview语法的开发者都会碰到这个小坑~咱们来一步步搞定它:
问题原因
你用的是SwiftUI新的#Preview宏,它要求闭包明确返回一个View实例。但你的Preview代码里有多行语句:先定义了animals常量,再创建AnimalListItemView。因为闭包里有多行代码,编译器没办法自动推断你要返回这个View,所以就把创建View的语句当成了“未使用的表达式”,抛出了警告。
解决方法
最直接的修复就是给View实例加上return关键字,让闭包明确知道要返回它:
#Preview { // 注意!这里文件名我改成了"animals.json",你之前写的是"animal.json"少了个s,会导致解码失败 let animals: [Animal] = Bundle.main.decode("animals.json") return AnimalListItemView(animal: animals[1]) }
额外提醒
- JSON文件名一致性:你在Preview里写的是
"animal.json",但之前的代码注释里都是"animals.json",如果你的实际JSON文件是复数命名的话,一定要改成一致,否则运行时会出现解码失败的崩溃。 - 硬编码内容修复:你的
AnimalListItemView里的标题是硬编码的Text("Lion"),应该改成Text(animal.name),这样才能根据传入的animal显示对应的动物名称哦~
另外,你注释掉的旧版PreviewProvider写法其实也是完全可用的,如果你觉得新宏用着不习惯,也可以换回那个写法,它不会有这个返回值的问题。
备注:内容来源于stack exchange,提问作者Shubham B
相关产品推荐
相关产品推荐

