Как я могу динамически искать ключ в cocoapods-keys?

#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:

Это невозможно из-за того, что библиотека не поддерживает этот синтаксис.