无法将 'AVPlayer' 类型的值强制转换为'Swift.AnyObject.Type'



我使用的是swift 3,代码可以编译,但是当我执行时,它在第一行中断并带有信号SIGABRT并给我该错误消息:

if (object as AnyObject).isKind(of: AVPlayer() as Any as! AnyClass) {
switch keyPath {
case "status":
if let value = change[NSKeyValueChangeKey.newKey] as? Int, let itemStatus = AVPlayerItemStatus(rawValue: value) {
if itemStatus == .readyToPlay {
status = .playing
notifyOnPlayBegins()
} else if itemStatus == .failed {
let error = player?.currentItem?.error
print("AVPlayerItem status: (itemStatus)nError: (error)")
status = .stopped
notifyError(error as! NSError)
}
}
break

AVPlayer:

open class AVPlayer : NSObject

import Foundation
class AVPlayer : NSObject {
}
let object : Any? = AVPlayer()
if object is AVPlayer {
print( "Meow" )
}

看看它会帮助你。

您可以通过三种方式检查对象类型:

let object:Any?
object = AVPlayer()
if let player = object as? AVPlayer {
print("true")
}
if (object!).isKind(of: AVPlayer.self) {
print("true")
}
if object is AVPlayer {
print("true")
}

最新更新