我有一个数组,其中有两个值。我希望将它们从数组中取出并根据索引库将值传递给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)
}
}
如何在两个单独的变量中获取值?
答案 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()