У меня есть несколько безопасных переменных, таких как clientSecretStage
и clientSecretProd
.
Я хочу перебирать мои известные ключи без суффикса env, чтобы затем заполнять переменные во время выполнения. Мой код такой:
let secureKeyValues = LiveKeys();
let secureKeys: [String] = [
"clientSecret",
"code",
];
let env = 'Prod'; // this would be from config
let clientSecret = secureKeyValues["\(secureKey)\(env)"];
При компиляции я получаю Type 'LiveKeys' has no subscript members
, хотя
print(secureKeyValues.codeProd);
работает нормально.
@Larme кажется правильным. Я не был уверен, что я что-то пропустил здесь. Возможно, я сделаю форк и добавлю эту функцию в будущем. Я использую Swift около недели, так что еще не совсем там;) Возможно, я мог бы сделать это ответом, чтобы я мог пометить вопрос решенным с помощью «Нет, нет, как»;)
Подробнее здесь: docs.swift.org/swift-book/LanguageGuide/Subscripts.html
Это невозможно из-за того, что библиотека не поддерживает этот синтаксис.
Вы используете
[
и]
для доступа к значению, которое является подпиской. Это автоматически делается с помощью массива с индексом и словаря с ключом. еслиLiveKeys()
не реализует индекс, вы не можете использовать[
и]
как таковые. Вы не можете сделатьlet myInt = 21; let myVar = myInt[1]
, нет?