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

SwiftUI中AVPlayerControllerRepresented不遵循UIViewControllerRepresentable协议问题

解决SwiftUI中AVPlayerControllerRepresented不遵循UIViewControllerRepresentable协议的问题

核心原因及修复方案

1. 缺失AVKit框架导入

AVPlayerViewController属于AVKit框架范畴,若未导入该框架,Xcode无法正确识别协议要求的关联类型,进而误报协议未遵循。

修复方式:在代码文件顶部添加AVKit导入语句:

import SwiftUI
import AVKit

2. 移除冗余关联类型声明(可选优化)

虽然显式声明typealias UIViewControllerType = AVPlayerViewController本身无语法错误,但Xcode可通过makeUIViewController的返回值自动推断关联类型,移除该声明能避免潜在的类型匹配问题:

struct AVPlayerControllerRepresented : UIViewControllerRepresentable {
    var player : AVPlayer
    
    func makeUIViewController(context: Context) -> AVPlayerViewController {
        let controller = AVPlayerViewController()
        controller.player = player
        return controller
    }
    
    func updateUIViewController(_ uiViewController: AVPlayerViewController, context: Context) {
        
    }
}

3. 确认SwiftUI框架已导入

确保文件顶部已导入SwiftUI框架,因为UIViewControllerRepresentable协议归属SwiftUI:

import SwiftUI

验证修复

完成上述操作后,执行Command+Shift+K清理项目,重新编译即可消除协议未遵循的错误提示。

内容的提问来源于stack exchange,提问作者Jakub Dymowski

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 21:27:03