将简单数组连接到嵌套数组逻辑混淆

时间:2015-10-09 16:46:23

标签: ios arrays swift logic

假设我的第一个表控制器由一个简单的数组填充。

var number = ["one", "two", "three"].

然后我的第二个表控制器填充了一个嵌套数组。

var letter = [["a", "b", "c"], ["d", "e", "f"], ["g", "h", "I"]]

如果用户在第一个表控制器中选择“一个”,则用户将能够在第二个表控制器中看到字母数组项“a,b,c”。 “二”和“d,e,f”等也是如此。 我知道索引路径指的是一个节和一行...但这里是我的逻辑紧张的地方。

让我试着解释一下我的困惑。所以理论上,我在数组中选择“三”。根据我的理解,这将给我一个索引路径[0] [2] ...第0部分,第2行。考虑到这一点,我必须使用的唯一真正值是2,这是一行值。因此,我应该如何将这个纯行值与字母数组中的嵌套数组/节连接起来?

2 个答案:

答案 0 :(得分:0)

与大多数编程语言一样,swift数组中的第一项是0

let array = [1,2,3]
array[0] // array[0] = 1

所以当你得到行值为2并得到

number[indexpath.row] //this will return "three"

您可以将它与字母数组一起使用

letter[indexpath.row] //will return ["g", "h", "I"] when row = 2

您还应该能够看到在UITableView中点击第三行时它将为indexpath.row

返回2

答案 1 :(得分:0)

Swift附带了Dictionary的集合类型.Dictionaries是键值关联的无序集合。 与数组不同,您可以为每个值设置索引值。

var arr1=["a","b","c"]
var arr2=["d","e","f"]
var arr3=["g","h","i"]
var dict = ["one":arr1,"two":arr2,"three":arr3]
print(dict["one"]) // access the dictionary through its key value

输出将是[“a”,“b”,“c”]

如果您想在Swift中阅读有关Dictionary的更多信息,可以参考此链接。https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html

在您的情况下,您可以初始化两个数组

var keys=["one","two","three"];
var arr1=["a","b","c"]
var arr2=["d","e","f"]
var arr3=["g","h","i"]
var dict = ["one":arr1,"two":arr2,"three":arr3]

您可以使用键阵列填充第一个表格视图。 之后,您可以从did select方法中获取选定值,以获取数组值以填充第二个表视图

var selectedStr = "one"
var newArr = dict[selectedStr]//use this array to populate 2nd Table View.

希望它有所帮助。 快乐的编码.. !!