You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode 16中UIViewControllerRepresentable存根实现报错求助

问题

在Xcode 16.0中创建UIViewControllerRepresentable结构体时,持续收到“未实现协议存根方法”的报错。手动添加typealias、通过Xcode自动生成存根或手写makeUIViewController与updateUIViewController方法后,错误仍未消除;点击“修复”按钮又会提示方法重复声明。

相关代码:

struct PassVC: UIViewControllerRepresentable {
    typealias UIViewControllerType = UIViewController
    
    func makeUIViewController(context: Context) -> UIViewController {
        let vc = UIViewController()
        vc.view.backgroundColor = .yellow
        return vc
    }
    
    func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
        
    }
}

报错提示:Type 'PassVC' does not conform to protocol 'UIViewControllerRepresentable'

解决方法
  • 导入必要框架:UIViewControllerRepresentable属于SwiftUI协议,代码中必须导入SwiftUI;同时因使用了UIViewController,也需要导入UIKit。在文件顶部添加:

    import SwiftUI
    import UIKit
    
  • 移除多余的关联类型声明:Xcode 16对应的Swift版本中,UIViewControllerRepresentable的UIViewControllerType可通过方法返回值自动推断,手动添加typealias UIViewControllerType = UIViewController会导致协议实现冲突,直接删除该行即可。

修改后的完整代码:

import SwiftUI
import UIKit

struct PassVC: UIViewControllerRepresentable {
    func makeUIViewController(context: Context) -> UIViewController {
        let vc = UIViewController()
        vc.view.backgroundColor = .yellow
        return vc
    }
    
    func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
        
    }
}
  • 清理缓存并重新编译:若上述操作后报错依旧,使用Cmd+Shift+K清理项目缓存,再执行Cmd+B重新编译,解决Xcode缓存引发的识别异常。

内容的提问来源于stack exchange,提问作者Badr Bujbara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 06:51:11