我最近将我的代码升级到 swift 3,但我有 2 个与我的应用程序中的 AVPlayer 相关的错误。
编辑:这里是声明:
public var avPlayer = AVPlayer()
public var avPlayerItem = AVPlayerItem?.self
这是我引用的函数:
func stream() {
let urlString = streamURLForSong
let urlItem = URL(string: urlString)
avPlayerItem = AVPlayerItem(url: urlItem!) // ERROR: Cannot assign value of type 'AVPlayerItem' to type 'AVPlayerItem?.Type?'
avPlayer = AVPlayer(playerItem: avPlayerItem!) // ERROR: Cannot convert value of type 'AVPlayerItem?.Type' (aka 'Optional<AVPlayerItem>.Type') to expected argument 'AVPlayerItem?'
}
这之前有效,但在使用 Xcode 升级到 Swift 3 后,会显示上面评论的错误。
我该如何解决这个问题?
提前致谢!
最佳答案
这段代码是错误的:
public var avPlayerItem = AVPlayerItem?.self
删除.self
。该代码使它成为一个类型,而您想要一个实例 到这里。现在删除 =
并改用 :
来声明类型。
举个更简单的例子,这段代码是非法的:
var x = String?.self
x = "howdy" // compile error
这是需要的:
var x : String?
x = "howdy"
关于ios - AVPlayer 无法将类型的值分配给类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41792168/