我正在尝试调用此函数来检查Apple Music订阅状态。我有一个有效的订阅,并在iPhone上听音乐。
但是,当我在其上运行测试应用程序时,capability
值无效。
它应该是SKCloudServiceCapability.musicCatalogPlayback
,SKCloudServiceCapability.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/