ios - Swift 3 中 "asset"的使用不明确

标签 ios swift

我编写了一个程序,当视频播放器出现在屏幕上时收到通知并从中获取信息。该代码在 Swift 2 上可以运行,但现在在 Swift 3.0 上却无法运行。它说“ Assets 使用不明确”。看我的代码:

func VideoPlayedInFullscreen(_ aNotification: Notification) {
        let player = aNotification.object
        if player == nil {
            return
        }
         //this line below shows ambiguous use of asset error
        let ast = (player as! AnyObject).asset 
}

我会非常感谢你的。请帮忙

最佳答案

编译器——就像我一样——不知道 player 是什么类型。通过将其转换为实际类型来告诉编译器该类型。

我想 - 在查看文档之后 - 它是 AVPlayerItem 所以代码应该是:

func VideoPlayedInFullscreen(_ aNotification: Notification) {
        guard let player = aNotification.object as? AVPlayerItem else { return }

        let ast = player.asset 
}

在 Swift 中,使用 if - letguard - let 而不是简单地检查 nil。好处是成功后您可以解开对象。

关于ios - Swift 3 中 "asset"的使用不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43820609/

相关文章:

ios - iOS中的后台录音

iphone - 具有 NSData 属性的核心数据

ios - 将数据从 tableview 传递到 Swift 中选项卡栏中的 View Controller

ios - 如何向导航栏添加两个栏按钮?遇到错误

ios - 使用 Xcode 8.3.2 编译 cocoa lumberjack 导致 DDOSLogger.m 出错

iphone - 单击表格单元格时的阴影背景

ios - 在 Swift 的 iOS 应用程序中显示表格(在 html/Excel 电子表格中的意思)

swift - 谁能告诉我为什么当我按下摄像头按钮时我的应用程序崩溃了

ios - SwiftyJSON 如何追加数据

ios - 移动到另一个导航 Controller 时,后退按钮变得无响应