2015-11-06 2 views
1

У меня есть данные в следующем форматеArraySlice вне диапазона в Swift

[ "DATA1-1", "DATA1-2", "DATA1-3", "DATA1-4", "",» DATA2-1" , "DATA2-2", "DATA2-3", "DATA2-4", "", "DATA3-1", "DATA3-2", "DATA3-3", "DATA3-4", ""].

Мне нужно выполнить определенные операции в каждом компоненте массива. Компоненты разделены символом "". Другими словами, мне сначала нужно выполнить операцию над [«DATA1-1», «DATA1-2», «DATA1-3», «DATA1-4»], затем выполнить ту же операцию на [«DATA2-1», "DATA2-2", "DATA2-3", "DATA2-4"] и т.д.

Во-первых, я нарезать массив на отдельные сегменты, а затем итерацию по каждому сегменту:

func arraySliceFunction(airway: [String]) 
    {   
     // Slice the master array with all combinations of airways into separate arrays 
     var airwaySlices = airway.split("") 

     // Iterate through the slices of arrays 
     for i in 0..<airwaySlices.count 
     { 
      let sliceComponent = airwaySlices[i] 

      // Iterate through each slice 
      for var y = 0; y < sliceComponent.count; y++ 
      { 
       print("SLICES COMPONENT: \(sliceComponent[y])") 
      } 
     } 
    } 

И это аварии на этой линии

print("SLICES COMPONENT: \(sliceComponent[y])") 

всегда во второй итерации с ошибкой: «фатальная ошибка: индекс ArraySlice вне диапазона».

Понятия не имею, почему ...

Спасибо заранее!

+0

Что не так с вопросом? Если кто-то накажет меня, можете ли вы, по крайней мере, дать объяснение? –

ответ

2

Try так:

func arraySliceFunction(array: [String]) { 
    // Slice the master array with all combinations of airways into separate arrays 
    // Iterate through the each subArray 
    for subArray in array.split("") { 
     // Iterate through each item in subArray 
     for item in subArray { 
      print("SLICES COMPONENT: \(item)") 
     } 
    } 
} 
+0

Это работает! Хотя я не понимаю, почему мой код не работал. Большое вам спасибо за вашу помощь. –

+0

@IgorTupitsyn добро пожаловать. –

+0

Почему код Игоря не работает? @Leo – Dieblitzen

Смежные вопросы