swift - 使用 Apple 提供的 MusicKit 示例应用程序时遇到问题

标签 swift ios11 xcode9-beta swift4 apple-musickit

我正在尝试在 Xcode 9 beta 3 上构建“将内容添加到 Apple Music”,这是 Apple 提供的 Music Kit 示例应用程序。但是我遇到了 4 个这样的错误:三个“'play()' 的使用不明确”错误和一个“‘pause()’的使用不明确”

如果您已经解决了这个问题,请告诉我如何解决这个问题。

func beginPlayback(itemCollection: MPMediaItemCollection) {
    musicPlayerController.setQueue(with: itemCollection)

    //Ambiguous use of 'play()’
    musicPlayerController.play()
}

func beginPlayback(itemID: String) {
    musicPlayerController.setQueue(with: [itemID])

    //Ambiguous use of 'play()’
    musicPlayerController.play()
}

// MARK: Playback Control Methods

func togglePlayPause() {
    if musicPlayerController.playbackState == .playing {

        //Ambiguous use of 'pause()’
        musicPlayerController.pause()
    } else {

        //Ambiguous use of 'play()’
        musicPlayerController.play()
    }
}

最佳答案

我在 Apple 的开发论坛上发现了一个类似的问题:

MPMusicPlayerController Swift4 - Ambiguous Use of Play

根据编写解决此问题的修复程序的条目,您需要更改 MusicPlayerManager.swift 中的这一行:

let musicPlayerController = MPMusicPlayerController.systemMusicPlayer

(使用这段代码,musicPlayerController 的类型变成了MPMusicPlayerController & MPSystemMusicPlayerController。)

收件人:

let musicPlayerController: MPMusicPlayerController = MPMusicPlayerController.systemMusicPlayer

(musicPlayerController 被显式注释为 MPMusicPlayerController。)


在我看来,这是一个与 SE-0156 Class and Subtype existentials 相关的 Swift 错误。你最好将错误报告发送到 Appleswift.org .

关于swift - 使用 Apple 提供的 MusicKit 示例应用程序时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45080188/

相关文章:

ios - 仅在点击后才应用 swift 的自动布局约束

javascript - 如何在 iOS11 主屏幕网络应用程序上访问相机?

swift - 在 Swift 4 模式下使用 Swift 3 @objc 推理是否被弃用?

ios - UIImage 不会显示带有白色前景图案的 PNG

swift - Xcode 的 "TOOLCHAINS"设置在哪里?

swift - UIBezierPath 不适用于右上角和右下角

swift - XCode - 如何设置 TableView 单元格的上边距?

ios - 使用 prefersLargeTitles 和 UITableView 平滑滚动

IOS 11 上的 HTML5 视频标签

swift - 重叠访问 'urlComponents' ,但修改需要独占访问