我正在实施In App purchases
,效果很好。我正在实现Auto-Renewable
和Non-renewable
订阅。我可以确定任一订阅何时处于活动状态以及何时过期。我可以根据订阅状态更新用户个人资料用户界面,但只能在我一次选中一个时进行。
如果视图即将出现时我同时调用functions
。用户界面混乱,无法显示正确的状态。我进行了调试,发现如果第一个检查一个订阅,更新其状态,当我移出view
并返回时,它检查另一个订阅会返回默认状态standard account
,因为{ {1}}已过期。有没有一种方法我可以同时运行两个功能,也可以同时使用它们来更新我的UI。下面是我的代码。
Auto-renewable
答案 0 :(得分:1)
您需要使用DispatchGroup
并在其中的通知部分中完成所需的操作
let dispatchGroup = DispatchGroup()
var inpIsActive = false
var inpSubscribed = false
func checkForAutoRenewableSubscription() {
dispatchGroup.enter()
self.activityIndicator.startAnimating()
self.user.checkIfSubscriptionIsActive { (pIsActive) in
self.inpIsActive = pIsActive
self.dispatchGroup.leave()
}
}
func checkForNonRenewableSubscription() {
dispatchGroup.enter()
self.activityIndicator.startAnimating()
self.user.checkifNonRenewableSubscriptionIsActive { (pSubscribed) in
self.inpSubscribed = pSubscribed
self.dispatchGroup.leave()
}
}
在viewDidLoad
内
checkForAutoRenewableSubscription()
checkForNonRenewableSubscription()
dispatchGroup.notify(queue: .main) {
self.setUpUserAccountStatus()
}