Ios SKCloudServiceCapability的Swift 3.1问题
我正在尝试调用此函数来检查Apple Music订阅状态。我有一个活跃的订阅,在我的iPhone上听音乐。 但当我在上面运行测试应用程序时,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
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;