从StoreKit作为字符串返回用户令牌时遇到问题

问题描述

import StoreKit
 
class AppleMusicAPI {
  let developerToken = "ABC123"

  func getUserToken() -> String {
    var userToken = String()
    SKCloudServiceController().requestUserToken(forDeveloperToken: developerToken) { (receivedToken,error) in
      userToken = receivedToken!
    }
    return userToken
  }
}

我正在尝试通过进行userToken来基本返回AppleMusicAPI().getUserToken(),但是什么也没有返回(字面上只是空白/空)。

如何将令牌输出为字符串?

解决方法

如果您查看要调用的方法签名,它看起来像这样: open func requestUserToken(forDeveloperToken developerToken: String,completionHandler: @escaping (String?,Error?) -> Void)

请注意@escaping关键字,它指示不一定立即(异步)调用完成块。为了解决您的问题,建议您使用类似以下的方法:

class AppleMusicAPI {
    let developerToken = "ABC123"

    func getUserToken(completion: @escaping (String?,Error?) -> Void) {
        SKCloudServiceController().requestUserToken(forDeveloperToken: developerToken,completionHandler: completion)
    }
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...