在swift中循环遍历数组问题

时间:2018-05-22 02:39:30

标签: swift for-loop

我有一个数组,其中有两个值。我希望将它们从数组中取出并根据索引库将值传递给var1var2。我循环遍历数组但是当运行应用程序时它不会进入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 :(得分:1)

如何在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)
            }
        }

    }

答案 1 :(得分:0)

正如您所提到的,您的阵列是二维的,您可以尝试下面给出的代码:

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 是一维数组。

答案 2 :(得分:0)

您可以在用户默认值中轻松保存和检索多维数组。在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()
相关问题