【发布时间】:2019-11-21 09:58:44
【问题描述】:
我遇到以下错误消息:
没有更多上下文的表达类型是模棱两可的
在这一行:
Picker(selection: $contact.type, label: Text("Select Testing Type"))
当我用文本添加更多行时,错误弹出。有没有人有同样的问题?怎么解决?
我正在使用 Catalina 和 iOS11。
这里是整个代码sn-p:
导入组合 导入 SwiftUI
class Contact: ObservableObject {
var objectWillChange = PassthroughSubject <Void, Never>()
static let types = ["Functional", "Automation", "Manual", "Mobile App", "Performance", "Security", "E2E", "Integration"]
static let services = ["HandsOn Testing", "Test Management", "Test Process Setup", "Training", "Test Leadership"]
var type = 0 {didSet { update()}}
var service = 0 {didSet { update()}}
var name = "" {didSet { update()}}
var company = "" {didSet { update()}}
var city = "" {didSet { update()}}
var email = "" {didSet { update()}}
var isValid: Bool{
if name.isEmpty || company.isEmpty || city.isEmpty || email.isEmpty {
return false
}
}
func update(){
//add log
objectWillChange.send()
}
}
struct ContentView: View {
@ObservedObject var contact = Contact()
var body: some View {
NavigationView {
Form {
Section {
Picker(selection: $contact.type, label: Text("Select Testing Type"))
{ ForEach(0..<Contact.types.count)
{Text(Contact.types[$0]).tag($0)
}}
Picker(selection: $contact.service, label: Text("Select Testing Service"))
{ForEach(0..<Contact.services.count)
{Text(Contact.services[$0]).tag($0)
}}
}
Section {
TextField($contact.name, placeholder:Text("Name"))
TextField($contact.company, placeholder:Text("Company"))
TextField($contact.city, placeholder:Text("City"))
TextField($contact.email, placeholder:Text("Email"))
}
Section {
Button(action: {
self.sendForm()
}) {
Text("Send Form")
}
}
.navigationBarTitle(Text("Contact us"))
}
}}
func sendForm(){
}}
struct SwiftUIView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
【问题讨论】:
-
请注意,当您的 SwiftUI 代码中有错误时,Xcode 可能指向错误的行并显示不相关的错误是一个已知问题
-
我认为问题在于您的导航视图中有多个项目。请发布整个
ContentView代码并修复格式 -
好的,谢谢,我已经在描述中添加了整个代码。
-
@Andrew 查看我添加的内容后有什么想法吗?谢谢
标签: ios xcode swiftui macos-catalina