我有一个我从Xcode 12 beta 5开始的Multiplatform应用程序项目, 3天前,我从App Store将Xcode更新到最新版本(12.0,内部版本12A7209),现在这段代码有问题
.strip().split()
当我尝试添加领先的HStack时:
.navigationBarItems(trailing: HStack {
Button(action: {
self.showSettings.toggle()
}, label: {
Image(systemName: "gear").font(.system(size: 30))
})
.sheet(isPresented: $showSettings, content: {
SettingsView(showSheet: $showSettings)
})
})
我得到这个错误:编译器无法在合理的时间内对这个表达式进行类型检查。尝试将表达式分解为不同的子表达式
编辑:我试图在一个新项目中复制它,但是我没有收到错误,所以这只会在这个“旧”项目上发生
答案 0 :(得分:0)
我解决了用我创建的单独的自定义View替换HStack的问题。 我不知道他为什么给我这个错误,它可以在其他项目中使用。
.navigationBarItems(leading: HStack{
Button(action: {
self.showSettings.toggle()
}, label: {
Image(systemName: "gear").font(.system(size: 25))
})
.sheet(isPresented: $showSettings, content: {
SettingsView(showSheet: $showSettings)
})
}, trailing: AddTaskButton().environmentObject(self.stateController))
答案 1 :(得分:-1)
关于如何加快编译和类型检查的文章很多,但是对我最有帮助的文章是将类型添加到所有变量中,例如var showSheet: Bool
,问题,我在-Xfrontend -warn-long-expression-type-checking=<limit>
开头的Build Settings>Swift Compiler>Custom Flags>Other Swift Flags
上添加了类型检查警告400
,然后从那里继续前进。https://www.avanderlee.com/optimization/analysing-build- performance-xcode-10 /
答案 2 :(得分:-1)
正如已经提到的,将代码分成较小的部分应该可以解决此问题。但是,由于更新到Xcode 12,只要代码中出现任何错误(例如错误的变量名),就似乎会抛出此错误。
查看您的代码,看不到任何错误。确保SettingsView
也没有错误。