[AVPlayerLayer superview]:无法识别的选择器发送到 Swift 中的实例

[AVPlayerLayer superview]: unrecognized selector sent to instance in Swift

在我的故事板中,我在 UIViewController 中放置了一个视图。 我在那里添加了必要的参数:

并将其与我的代码连接:

在我的代码中:

import AVKit
import AVFoundation

@IBOutlet weak var yawpVideo: AVPlayerLayer!

override func viewDidLoad() {

    let url:NSURL = NSURL(string: videoURL)!

    player = AVPlayer(URL: url)
    yawpVideo.player = player
    player.play()
}

这会导致错误:

*** Terminating app due to uncaught exception
 'NSInvalidArgumentException', reason: '-[AVPlayerLayer superview]:
 unrecognized selector sent to instance 0x7fe320cb2030'

你能告诉我这个问题是什么原因造成的吗?如何解决?

UIView 不是 CALayer,您不能将 AVPlayerLayer 添加到故事板。

相反,在您的视图加载后,以编程方式将您的 AVPlayer playerLayer 添加到 UIView 的层。

将您的插座更改为 UIView:

@IBOutlet weak var yawpVideo: UIView!

然后,添加图层:

player = AVPlayer(URL: url)
let playerLayer = AVPlayerLayer(player: player)
yawpVideo.layer.addSublayer(playerLayer)