#swift #security
#swift #Безопасность
Вопрос:
У меня есть несколько безопасных переменных, таких как clientSecretStage
and 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);
работает просто отлично.
Комментарии:
1. Вы используете
[
и]
для доступа к значению, это подписка. Это автоматически выполняется с помощью массива с индексом и словаря с ключом. еслиLiveKeys()
не реализован нижний индекс, вы не можете использовать[
and]
как таковой. Ты не можешь этого сделатьlet myInt = 21; let myVar = myInt[1]
, нет?2. @Larme это кажется правильным. Я не был уверен, что мне здесь чего-то не хватает. Может быть, я раскошелюсь и добавлю эту функцию в будущем. Я уже около недели пользуюсь Swift, так что пока не совсем 😉 Вероятно, можно было бы сделать это ответом, чтобы я мог отметить решаемый вопрос «Нет, нет способа» 😉
3. Дополнительная информация там: docs.swift.org/swift-book/LanguageGuide/Subscripts.html
Ответ №1:
Это невозможно из-за того, что библиотека не поддерживает этот синтаксис.