【问题标题】:Accessing an array by string value通过字符串值访问数组
【发布时间】:2020-04-26 13:34:12
【问题描述】:

我有两种类型的数组:一种用于存储类别名称:

struct Category {
    var title : String
    var dataArrayName : String
}

var Categories = [
    Category(title: "First Title", dataArrayName: "firstDataArray"),
    Category(title: "Second Title", dataArrayName: "secondDataArray")
]

还有一个用于存储类别数据:

var firstDataArray = [1, 2, 3, 4, 5] // Data Array 1
var secondDataArray = [6, 7, 8, 9, 10] // Data Array 2

然后,在tableView didSelectRowAt indexPath 中,我想通过dataArrayName 从Categories 访问firstDataArray(将数据数组推送到另一个视图控制器)。

我通过Categories[indexPath.row].dataArrayName 行获得了dataArrayName 的值,但我不知道如何访问数组,因为我得到了一个字符串结果。

【问题讨论】:

    标签: arrays swift string


    【解决方案1】:

    我认为您可以使用数据 [Int] 设置“dataArrayName”。因为,当您在类别之前设置 Array Data 时,您可以像这样访问这个 var:

    struct Category {
        var title : String
        var dataArrayName : [Int]
    }
    
    var firstDataArray = [1, 2, 3, 4, 5] // Data Array 1
    var secondDataArray = [6, 7, 8, 9, 10] // Data Array 2
    
    var categories = [
        Category(title: "First Title", dataArrayName: firstDataArray),
        Category(title: "Second Title", dataArrayName: secondDataArray)
    ]
    

    【讨论】:

      【解决方案2】:

      您可能不应该按名称访问arrayData,这是编程中非常糟糕的做法。而不是使用Array 的实例,如下所示:

      struct Category {
          var title : String
          var dataArray : [Int]
      }
      
      var firstDataArray = [1, 2, 3, 4, 5] // Data Array 1
      var secondDataArray = [6, 7, 8, 9, 10] // Data Array 2
      
      var categories = [
          Category(title: "First Title", dataArray: firstDataArray),
          Category(title: "Second Title", dataArray: secondDataArray)
      ]
      

      最后访问arrayData:

      print(categories[indexPath.row].dataArray)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多