SKCloudServiceCapability

SKCloudServiceCapability

我正在尝试调用此函数来检查Apple Music订阅状态。我有一个有效的订阅,并在iPhone上听音乐。
但是,当我在其上运行测试应用程序时,capability值无效。

它应该是SKCloudServiceCapability.musicCatalogPlaybackSKCloudServiceCapability.addToCloudMusicLibrary或未设置。我只能得到raw value = 257

func appleMusicCheckIfDeviceCanPlayback()
{
    let serviceController = SKCloudServiceController()
    serviceController.requestCapabilities { (capability:SKCloudServiceCapability, err:Error?) in
        switch capability {
        case SKCloudServiceCapability.musicCatalogPlayback:
            print("The user has an Apple Music subscription and can playback music!")
        case SKCloudServiceCapability.addToCloudMusicLibrary:
            print("The user has an Apple Music subscription, can playback music AND can add to the Cloud Music Library")
        case []:
            print("The user doesn't have an Apple Music subscription available. Now would be a good time to prompt them to buy one?")
        default: print("Something went wrong")
        }
    }
}



怎么了

最佳答案

最终,来自苹果论坛的家伙给了我这个文档链接,我发现了这个问题。
https://developer.apple.com/library/content/qa/qa1929/_index.html

我应该使用if capacity.contains(SKCloudServiceCapability。)代替功能值的切换。
因此,此代码可以正常工作。

func appleMusicCheckIfDeviceCanPlayback()
{
    let serviceController = SKCloudServiceController()
    serviceController.requestCapabilities { (capability:SKCloudServiceCapability, err:Error?) in
        if capability.contains(SKCloudServiceCapability.musicCatalogPlayback) {
            print("The user has an Apple Music subscription and can playback music!")

        } else if  capability.contains(SKCloudServiceCapability.addToCloudMusicLibrary) {
            print("The user has an Apple Music subscription, can playback music AND can add to the Cloud Music Library")

        } else {
            print("The user doesn't have an Apple Music subscription available. Now would be a good time to prompt them to buy one?")

        }
    }
}

关于ios - Swift 3.1问题与SKCloudServiceCapability,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43530712/

10-09 10:21