这一问题的原因为视图的初始化器因为访问控制级别问题,导致无法进行实例化。
具体案例为:
struct Settings: View {
@State private var path = NavigationPath()
...
}
#Preview {
Settings(path: NavigationPath()) // 报错行
}
当我们尝试给预览视图添加参数时,就会引发对应的访问控制级别报错。
Argument passed to call that takes no arguments
问题原因为,案例中的Settings视图结构的path为private私有变量,因此无法从外部赋值。
解决方案就是将private删除,让#Preview预览视图可以传参并访问。
@State var path = NavigationPath()
删除private后,问题得到解决。