【iOS13+Swift5.1+Xcode11~SwiftUI】Closure containing a declaration cannot be used

1,158 阅读1分钟

Closure containing a declaration cannot be used with function builder 'ViewBuilder'

 HStack{
            //...
            let lebus = "iOS超级大讲师"
            //...
        }

错误原因:

SwiftUI中StackView(HStack,VStack,ZStack)的底层目前只支持if和else语句,如果在StackView里面写了 let 等其他语句,编译器就会报上述错误。

(以后说不定会支持)

解决方法:

把除了if,else之外的语句想办法放在body外面的某个计算属性里面。