sigma-client-check-flag
SigmaClient.checkFlag
func checkFlag<T: SigmaPropertyType>(flagName: String, onSuccess: SigmaSuccessCallback<T?>?, onError: SigmaErrorCallback?)
func checkFlag<T: SigmaPropertyType>(flagName: String) async throws -> T?
Получает значение FeatureFlag сответствующего типа (Bool, Int, Double, String или [String: Any]).
Параметры
| Name | Type | Required | Default | Description | 
| flagName | String | Да | Название Feature Flag | |
| onSuccess | SigmaSuccessCallback? | Да | Только для callback версии метода. Closure, содержащая в себе значение запрашиваемого Feature Flag | |
| onError | SigmaErrorCallback? | Да | Только для callback версии метода. Closure, содержащая в себе ошибку при запросе Feature Flag | 
Возвращаемое значение
| Type | Description | 
| Bool? / Int? / Double? / String? / [String: Any]? | Только для async-await версии метода. Значение запрашиваемого Feature Flag | 
Ошибки
| Error | Description | 
| SigmaError.requestConfigFailed | Ошибка запроса конфигурационного файла. Содержит в себе объект SigmaNetworkError с более детальной информацией об ошибке | 
| SigmaError.requestLocationFailed | Ошибка запроса геолокации. Содержит в себе объект SigmaNetworkError с более детальной информацией об ошибке | 
| SigmaError.featureFlagNotFound | Feature Flag с данным именем не найден в конфигурационном файле | 
| SigmaError.featureFlagNoRules | Для данного Feature Flag отсутствуют правила, по которым определяется значение флага | 
| SigmaError.featureFlagRulesNotSatisfied | Для данного Feature Flag не удовлетворено ни одно правило | 
Использование
import SigmaSDK
guard let client = Sigma.getClient() else { return }
// Callback версия
client.checkFlag(
    flagName: "my_first_flag",
    onSuccess: { (value: Bool?) in
        // Обработка значения Feature Flag
    },
    onError: { error in
        // Обработка ошибки
    }
)
// Async-await версия
do {
    let firstFlag: Bool? = try await client.checkFlag(flagName: "my_first_flag")
    // Обработка значения Feature Flag
} catch let error {
    // Обработка ошибки
}
Дополнительная информация
Несмотря на то, что методы получения Feature Flag выбрасывают ошибки, даже при отсутствии ошибок значение флага может быть nil. Эта ситуация может возникнуть, например, при попытке получить флаг с типом Int, хотя ег о фактическое значение String.