Циклическая проблема с массивом в Swift - PullRequest
0 голосов
/ 22 мая 2018

У меня есть массив, в котором есть два значения.Я хочу получить их из массива и передать значение в соответствии с индексной базой в var1 и var2.Я перебираю массив, но когда запускаю приложение, оно не заходит в цикл for.Я также использовал точки останова, но они не входят в цикл.

Код, который я пробовал,

let myarray = UserDefaults.standard.stringArray(forKey: "selectArray") ?? [String]()
    for (index, value) in myarray.enumerated() {
        print("\(index): \(value)")
        if index == 0{
            listItem = value
             print(listItem)
        }else
        {
            CuisineItem = value
            print(CuisineItem)

        }
    }

Как теперь получить значение в двух отдельных переменных?

Ответы [ 3 ]

0 голосов
/ 22 мая 2018

Поскольку вы упомянули, что ваш массив 2-D, вы можете попробовать код, приведенный ниже:

for oneDArray in myarray {
   for(index,value) in oneDArray.enumerated(){
     print("\(index1): \(value1)")
        if index == 0{
            listItem = value
            print(listItem)
        }
        else {
            CuisineItem = value
            print(CuisineItem)
        }
    }

}

Следует отметить, что myarray - это двумерный массив, а oneDArray - это одномерный массив.

0 голосов
/ 22 мая 2018

Вы можете легко сохранять и извлекать многомерный массив в пользовательских настройках по умолчанию.Попробуйте приведенный ниже код в XCode Playground, он работает как шарм.

import Foundation
let array = [["a", "b", "c"], ["a", "b", "c"]];

func testArray() {
  UserDefaults.standard.setValue(array, forKey: "test");
  guard let testArray = UserDefaults.standard.array(forKey: "test") as? [[String]] else {
    return
  };
  print(testArray)
}

testArray()
0 голосов
/ 22 мая 2018

Как вы устанавливаете массив в UserDefaults.Посмотри здесь, мой код работает хорошо

var array1: [[String]] = [[String]]()
    array1 = [["key1", "val2"],["key2", "val2"]]
    UserDefaults.standard.set(array1, forKey: "selectArray")
    let myarray = UserDefaults.standard.value(forKey: "selectArray") as? [[String]]
    for (index, value) in (myarray?.enumerated())! {

        for (index, value) in value.enumerated() {
            print("\(index): \(value)")
            if index == 0 {
                listItem = value
                print(listItem)
            }else {
                CuisineItem = value
                print(CuisineItem)
            }
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...