Каков наилучший способ обернуть `purchaserInfo` для простого сравнения всего кода с помощью RevenueCat - PullRequest
0 голосов
/ 26 июня 2019

Как лучше всего обернуть Purchases.shared.purchaserInfo, чтобы просто возвращать true или false при выполнении нескольких сравнений в операторе If.

Что я хочу сделать, эточтобы быстро проверить, есть ли у пользователя доступ к функциям PRO, с помощью метода или свойства, которые возвращают true или false, так как мне нужно сделать несколько проверок в операторе if, что-то вроде ... if userHasAccess && someOtherCheck { // do something}

Isэто верное решение?

Класс Singleton:

    class IAPHelper {

        static let shared = IAPHelper()

        func hasAccessToProFeatures()->Bool{
            var hasAccess:Bool?
            Purchases.shared.purchaserInfo { (purchaserInfo, error) in
                if let purchaserInfo = purchaserInfo {
                    if purchaserInfo.activeEntitlements.contains("myEntitlement") {
                        hasAccess = true
                    }else{
                        hasAccess = false
                    }
                }
            }
            return hasAccess!
        }
    }

Использование:

    if IAPHelper.shared.hasAccessToProFeatures() && someOtherCheck{
        // unlock PRO features
    }

1 Ответ

1 голос
/ 26 июня 2019

Совместно используемые экземпляры неплохие, однако для такого небольшого класса вы могли бы вместо этого объявить hasAccessToProFeatures как статическую переменную.

class IAPHelper {

static var hasAccessToProFeatures: Bool {

    var hasAccess:Bool?
    Purchases.shared.purchaserInfo { (purchaserInfo, error) in
        if let purchaserInfo = purchaserInfo {
            if purchaserInfo.activeEntitlements.contains("myEntitlement") {
                hasAccess = true
            }else{
                hasAccess = false
            }
        }
    }

    guard let isProMember = hasAccess else {
        return false
    }

    return isProMember

  }

}

Тогда вы могли бы назвать его как:

if IAPHelper.hasAccessToProFeatures && someOtherCheck {
    // unlock PRO features
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...