Перейти к основному содержимому

sigma-experiment-get-feature-value

SigmaExperiment.getFeatureValue

func getFeatureValue<T: SigmaPropertyType>(flagName: String) throws -> T?

Получает значение Feature Flag внутри пользовательского эксперимента по имени Feature Flag. Результат может быть одного следующих из типов: Bool, Int, Double, String или [String: Any].

Параметры

NameTypeRequiredDefaultDescription
flagNameStringДаНазвание Feature Flag в эксперименте

Возвращаемое значение

TypeDescription
Bool? / Int? / Double? / String? / [String: Any]?Значение Feature Flag, или nil, если пользователь не попал в эксперимент или если нельзя привести значение к выбранному типу

Ошибки

ErrorDescription
SigmaError.experimentGroupNotMatchingFeatureFlagGroupFeature Flag в эксперименте не содержит группы с таким же названием, как и группа эксперимента, в которую попал пользователь

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

import SigmaSDK

guard let client = Sigma.getClient() else { return }

// Callback версия
client.getExperiment(
name: "my_first_experiment",
onSuccess: { experiment in
let myValue: Double? = experiment.getFeatureValue(flagName: "my_feature_flag")
// Обработка значения Feature Flag
},
onError: { error in
// Обработка ошибки
}
)

// Async-await версия
do {
let userExperiment = try await client.getExperiment(name: "my_first_experiment")
let myValue: Double? = experiment.getFeatureValue(flagName: "my_feature_flag")
// Обработка значения Feature Flag
} catch let error {
// Обработка ошибки
}

Дополнительная информация

Данный метод может вернуть nil в случае, если пользователь не попал в эксперимент, либо если данный Feature Flag не содержит варианта, соответствующего группе, в которую попал пользователь, либо если был выбран неправильный тип данных (например, попытка получить Feature Flag со значением Int, когда на самом деле он String)