Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SKCloudServiceCapability的Swift 3.1问题_Ios_Swift_Apple Music - Fatal编程技术网

Ios SKCloudServiceCapability的Swift 3.1问题

Ios SKCloudServiceCapability的Swift 3.1问题,ios,swift,apple-music,Ios,Swift,Apple Music,我正在尝试调用此函数来检查Apple Music订阅状态。我有一个活跃的订阅,在我的iPhone上听音乐。 但当我在上面运行测试应用程序时,capability值无效 它应该是skcloudservicepability.musicCatalogPlayback,skcloudservicepability.addToCloudMusicLibrary,或者未设置。我只能得到原始值=257 func appleMusicCheckIfDeviceCanPlayback() { let s

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

它应该是
skcloudservicepability.musicCatalogPlayback
skcloudservicepability.addToCloudMusicLibrary
,或者未设置。我只能得到
原始值=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")
        }
    }
}



这里怎么了?

最后,苹果论坛的人给了我这个文档链接,我发现了这个问题。

我应该使用if capability.contains(skcloudservicepability.)而不是转换为性能值。 所以这段代码运行得很好

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?")  

        }  
    }  
}  
这是位算术

.musicCatalogPlayback(1 << 0 = 1) | . addToCloudMusicLibrary(1 << 8 = 256) = 257
oc:


在苹果发展论坛上问到同样的问题:
swift:

case SKCloudServiceCapability.addToCloudMusicLibrary|SKCloudServiceCapability.musicCatalogPlayback:{
    //code
}break;
case SKCloudServiceCapabilityAddToCloudMusicLibrary|SKCloudServiceCapabilityMusicCatalogPlayback:{
            //code
        }break;