arrays - 用许多数组构建结构

标签 arrays swift structure

我有 21 个数组,除以艺术家的字母表(artistaA、artistaB 等)和 21 个标题。 我想基于名为 VociMontagna 的结构构建一个独特的数组,但出现错误。我的目标是创建这个大数组,然后基于这个数组生成一个 TableView 以便使用过滤器。 我有 800 多个标题,所以我更喜欢将数组分开。

这里是代码:

func creaListaCanzoni(){
        var tot = 0
        var a = 0
        for _ in stride(from: 0, to: titoliA.count , by: 1) {
            let voce = VociMontagna(titolo: titoliA[a], artista: artistaA[a])
            listaCanzoni.append(voce)
            a = a + 1
            tot = tot + 1
            print("Tot: \(a)--Nome: \(listaCanzoni[a].nomeTesto)")
        }
    }

这里是结构:

import UIKit

struct VociMontagna {
    let titolo : String
    let artista : String
}

enter image description here

最佳答案

首先,不清楚为什么要分开这些数据。 800 条记录很小。维护 40 多个数组似乎非常复杂。

你的错误在于你数得太高了。最后一个索引是 titoliA.count - 1。索引从零开始。而不是这一行:

for _ in stride(from: 0, to: titoliA.count , by: 1) {

你的意思是:

for a in titolaA.indices {

整个函数看起来像这样:

func creaListaCanzoni(){
    for a in titolaA.indices {
        let voce = VociMontagna(titolo: titoliA[a], artista: artistaA[a])
        listaCanzoni.append(voce)
        print("Tot: \(a)--Nome: \(listaCanzoni[a].nomeTesto)")
    }
}

也就是说,如果您确实需要合并两个数组(我建议您不要这样做;只需将它们存储为一个结构数组),更好的工具是:

let listaCanzoni = zip(titoliA, artistaA).map(VociMontagna.init)

这结合了两个数组并在一个步骤中将它们构造出来。

关于arrays - 用许多数组构建结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50284580/

相关文章:

c - 缓冲区溢出或其他

c++ - 在 C 中声明结构的新实例

arrays - 使用 swiftyjson 时数组列表项计数和数组中元素的数量不匹配?

ios - 如何修复 AssetsPickerController iOS 中 PHImageManager 的空资源问题?

swift - 弹出窗口中没有摘要信息 -- Option-Click

ios - Firebase 控制台未在目标过滤器中显示我的应用版本

C、对结构队列进行排序

php - Json转php,无法获取我需要的数据

javascript - 如何在一行中console.log对象

php - Jquery 按选项标签分割