swift5 - TableView Getter 的 Swift 5.3 编译器崩溃

标签 swift5 xcodebuild xcode12

在执行 xcodebuild 时,编译器在声明 tableView 的第一行下方崩溃。

var tableView: UITableView? {
    get {
        var table: UIView? = superview
        while !(table is UITableView) && table != nil {
            table = table?.superview
        }
        return table as? UITableView
    }
}

这是编译器崩溃的堆栈跟踪
2. Apple Swift version 5.3 (swiftlang-1200.0.28.1 clang-1200.0.30.1)
3.  While evaluating request ExecuteSILPipelineRequest(Run pipelines { EarlyModulePasses, HighLevel+EarlyLoopOpt, MidModulePasses+StackPromote, MidLevel, ClosureSpecialize, LowLevel, LateLoopOpt, SIL Debug Info Generator } on SIL for TestApp.TestApp)
4.  While running pass #835 SILFunctionTransform "SimplifyCFG" on SILFunction "@$s10TestApp31EditProfileAboutMeTableViewCellC05tableH0So07UITableH0CSgvg".
 for getter for tableView (at /Users/madhu/Downloads/Agent/_work/3/s/TestApp/MoreTab/Views/EditProfileAboutMeTableViewCell.swift:26:9)
0  swift                    0x0000000104b05a85 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 37
1  swift                    0x0000000104b04a85 llvm::sys::RunSignalHandlers() + 85
2  swift                    0x0000000104b0603f SignalHandler(int) + 111
3  libsystem_platform.dylib 0x00007fff6b2f8d7d _sigtramp + 29
4  libsystem_platform.dylib 0x0000000106d58400 _sigtramp + 18446603343127508640
5  swift                    0x0000000100ef207a (anonymous namespace)::SimplifyCFG::simplifyBlocks() + 2458
6  swift                    0x0000000100eea847 (anonymous namespace)::SimplifyCFG::run() + 119
7  swift                    0x0000000100eea79a (anonymous namespace)::SimplifyCFGPass::run() + 890
8  swift                    0x0000000100e0e97b swift::SILPassManager::runFunctionPasses(unsigned int, unsigned int) + 4299
9  swift                    0x0000000100e0ad5a swift::SILPassManager::executePassPipelinePlan(swift::SILPassPipelinePlan const&) + 138
10 swift                    0x0000000100e24bfc swift::SimpleRequest<swift::ExecuteSILPipelineRequest, std::__1::tuple<> (swift::SILPipelineExecutionDescriptor), (swift::RequestFlags)1>::evaluateRequest(swift::ExecuteSILPipelineRequest const&, swift::Evaluator&) + 60
11 swift                    0x0000000100e13155 llvm::Expected<swift::ExecuteSILPipelineRequest::OutputType> swift::Evaluator::getResultUncached<swift::ExecuteSILPipelineRequest>(swift::ExecuteSILPipelineRequest const&) + 1045
12 swift                    0x0000000100e163b9 swift::runSILOptimizationPasses(swift::SILModule&) + 425
13 swift                    0x00000001007aa14e swift::CompilerInstance::performSILProcessing(swift::SILModule*) + 1358
14 swift                    0x000000010067ccd8 performCompileStepsPostSILGen(swift::CompilerInstance&, swift::CompilerInvocation const&, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule> >, llvm::PointerUnion<swift::ModuleDecl*, swift::SourceFile*>, swift::PrimarySpecificPaths const&, int&, swift::FrontendObserver*) + 1288
15 swift                    0x000000010066cf98 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 20712
16 swift                    0x00000001005ee277 main + 1255
17 libdyld.dylib            0x00007fff6b0ca851 start + 1
18 libdyld.dylib            0x0000000000000161 start + 18446603338720172305

最佳答案

我用非常相似的代码遇到了同样的问题来查找 UITableViewCell .我的解决方法是在 while 循环中使用一个临时变量,如下所示:

var tableView: UITableView? {
    get {
        var table: UIView? = superview
        while !(table is UITableView) && table != nil {
            let newSuperview = table?.superview
            table = newSuperview
        }
        return table as? UITableView
    }
}

关于swift5 - TableView Getter 的 Swift 5.3 编译器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63779031/

相关文章:

ios - 如何在Realm Swift中将一对一关系迁移到一对多关系

xcode - 合并 .swiftmodule 因段错误而失败

ios - 更新到 iOS 14 和 Xcode 12 后应用启动时间变慢

swift - AudioKit Xcode 12 测试版

SwiftUI 侧边栏不记得状态

swift - Firebase 有时只提供我保存的值的一部分,有时则提供全部内容

ios - 类型 'Result<Any, AFError>' 的值没有成员 'value'

swift - 默认实现的 SIMD3 扩展

ios - Jenkins 无法从项目文件夹运行 xcodebuild

xcodebuild 存档在一个文件夹中什么都不做,但在另一个文件夹中工作正常