ios - Swift:将 oldArray[][] 复制到 newArray[][] 会导致错误(类型 'Any' 没有下标成员)

标签 ios arrays swift collections plist

为我的 collectionView 应用程序使用 Swift。我正在读取一个 plist 文件以显示数组中的信息。

这是读取 plist 的代码,它创建了一个名为 sections[section #][item #] 的数组,它让我可以访问根数组中的项目。

var Items = [Any]()

let url = Bundle.main.url(forResource:"items", withExtension: "plist")!
    do {
        let data = try Data(contentsOf:url)
        let sections = try PropertyListSerialization.propertyList(from: data, format: nil) as! [[Any]]

        for (index, section) in sections.enumerated() {
            //print("section ", index)
            for item in section {
                //print(item)
            }
        }
        print("specific item: - \(sections[1][0])") // (Section[] Item[])
        print("section count: - \(sections.count)")

        Items = sections

    } catch {
        print("This error must never occur", error)
    }

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

    switch checkGroupChoice {
    case 0:
        print("From: Items")

        print("specific item 2: - \(Items[0][1])")

        return Items.count

我创建了 var Items = [Any]() 以将所有内容从 sections[][] 传输到数组 Items 以便我可以将它用作全局数组我的 collectionsView 但出现错误。

Type 'Any' has no subscript members

在行 print("specific item 2: -\(Items[0][1])")

如何成功地将 sections[][] 转移到 Items?我确定我没有正确创建数组。谢谢

最佳答案

Items 是一个一维数组。您正试图将其作为二维数组进行索引。将其更改为:

var Items = [[Any]]()

现在您可以对其进行赋值和追加,并将其作为二维数组进行索引。每个维度都需要一组匹配的方括号..

例子:

1D array:  [Any]()
2D array:  [[Any]]()
3D array:  [[[Any]]]()

关于ios - Swift:将 oldArray[][] 复制到 newArray[][] 会导致错误(类型 'Any' 没有下标成员),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46311178/

相关文章:

ios - 二进制图像 POST - iOS

Java deepToString 转数组——矩阵乘法

java - 如何在http请求头中发送签名

swift - UITableView 中的图像重新加载

ios - 日志 - DispatchQueue - self.tableView.reloadData() 未被调用

objective-c - 使用选择器评估对象链

ios 快速改变方向将改变 UIView 设计

android - 面部跟踪和检测

java - 如何将字符串添加到对象的二维数组中?

swift - 我无法在 swift Playground 文件中导入 AudioKit 或 AudioKitPlaygrounds