无法推断复杂闭包的返回类型;添加显式类型以消除歧义?

问题描述 投票:0回答:1

我认为我想在其中包含if语句,但是将if语句添加到ForEach闭包中时,它将导致触发此错误。有任何解决方法吗?

import Foundation
import SwiftUI

struct SearchResults: View {
    @ObservedObject var VModel: ViewModel
    var body: some View {
        List {
            ForEach(self.VModel.searchResults, id: \.self) { result in 
                self.RowText
            }
        }
    }

    private var RowText: some View {
        if result.country != nil { //Cannot access the result variable here?
            return Text("First conditional met!")
        } else {
            return Text("Second conditional met!")
        }
    }

}

侧注:searchResults是一个GeocodedPlacemark类型的数组。 VModel是一个地理编码类。

swift view swiftui geocode
1个回答
0
投票

如果您的回答为零,您需要返回一些信息。这就是编译器抱怨的原因。

import Foundation
import SwiftUI

struct SearchResults: View {
    @ObservedObject var VModel: ViewModel
    var body: some View {
        List {
            ForEach(self.VModel.searchResults, id: \.self) { result in 
                if result.country != nil {
                    Text("\(result.formattedName), \(result.country!)")
                } else {
                    EmptyView()
                }
            }
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.