2016-09-10 1 views
-2

Я пытаюсь взять результат одного массива в виде строки и использовать этот результат как имя уже существующего массива.Как использовать ввод строки в виде массива? Swift

var Jeep_Model: [String] = ["CJ", 
         "DJ", 
         "SJ", 
         "XJ", 
         "Comanche", 
         "YJ", 
         "TJ", 
         "JK" 
         //"Grand Cherokee", 
         //"Renegade", 
         //"Compass", 
         //"Commander", 
         //"Liberty", 
         //"Patriot", 
         //"Wagoneer" 
         ] 

var CJ: [String] = ["CJ-1", 
       "CJ-2", 
       "CJ-2A", 
       "CJ-V35", 
       "CJ-4", 
       "CJ-4M", 
       "CJ-4MA", 
       "CJ-3B", 
       "CJ-5: Tuxedo Park Mark III", 
       "CJ-5: Camper", 
       "CJ-5: 462", 
       "CJ-5: Renegade I", 
       "CJ-5: Renegade II", 
       "CJ-5: Super Jeep", 
       "CJ-5: Golden Eagle", 
       "CJ-5: Golden Eagle California Edition", 
       "CJ-5: Golden Hawk", 
       "CJ-5: Silver Anniversary", 
       "CJ-6", 
       "CJ-3B Long", 
       "CJ-5A", 
       "CJ-6A", 
       "CJ-7", 
       "CJ-5", 
       "CJ-8: Scrambler", 
       "CJ-10" 
       ] 

Так что если Jeep_Model возвращает CJ, то я хочу, чтобы быть в состоянии назвать CJ как массив. Имеет ли смысл этот вопрос, и если да, возможно ли это?

Jeep_Model возвращает «CJ», то я хочу, чтобы прочитать массив CJ.count или CJ [2] и т.д. и т.п ...

ответ

1

имена переменных вычисляются во время компиляции вы не можете рассматривать имя как Строковое значение во время выполнения.

Вам нужен словарь, ключ - это модель, возвращаемая с Jeep_Model, значение - это связанный массив.

Объекты укорочены чуток

let Jeep_Model = ["CJ", "DJ", "SJ"] 

let allModels = ["CJ" : ["CJ-1", "CJ-2", "CJ-2A"], "DJ" : ["DJ... "], "SJ" : ["SJ... "]] 

Jeep_Model Теперь, если возврат CJ вы получите третью модель CJ с

let model = allModels["CJ"]![2] // -> "CJ-2A" 
Смежные вопросы