【问题标题】:How to insert elements in array within a for loop in Swift?如何在 Swift 的 for 循环中插入数组中的元素?
【发布时间】:2015-11-16 04:03:53
【问题描述】:

我正在尝试使用来自一系列数组的潜在信息填充表格视图。我希望他们按顺序在索引中列出。这是前 10 个列表,因此如果某个元素在某个时间不存在,则应该跳过它。我可以用array.append 做到这一点。我正在尝试使用 array.insertAtIndex 并得到“致命错误:数组超出范围”。这是我的代码............

let query = PFQuery(className: "UserVideos")
        query.whereKey("userObjectId", equalTo: PFUser.currentUser()!.objectId!)
        query.findObjectsInBackgroundWithBlock { (vid:Array?, error:NSError?) -> Void in
            if vid != nil
            {
                for items in vid!
                {

                    if let myfav1 = items["vid1"] as? NSArray
                    {
                        let id = myfav1[0] as! String
                        let rank = myfav1[1] as! String
                        let title = myfav1[2] as! String
                        let description = myfav1[3] as! String
                        let image = myfav1[4] as! String
                        self.vidRankArray.insert(rank, atIndex: 0)
                        self.vidIdArray.insert(id, atIndex: 0)
                        self.vidTitleArray.insert(title, atIndex: 0)
                        self.vidDescriptionArray.insert(description, atIndex: 0)
                        self.vidImageArray.insert(image, atIndex: 0)

                    }
                    if let myfav2 = items["vid2"] as? NSArray
                    {
                        let id = myfav2[0] as! String
                        let rank = myfav2[1] as! String
                        let title = myfav2[2] as! String
                        let description = myfav2[3] as! String
                        let image = myfav2[4] as! String
                        self.vidRankArray.insert(rank, atIndex: 1)
                        self.vidIdArray.insert(id, atIndex: 1)
                        self.vidTitleArray.insert(title, atIndex: 1)
                        self.vidDescriptionArray.insert(description, atIndex: 1)
                        self.vidImageArray.insert(image, atIndex: 1)
                    }
                    if let myfav3 = items["vid3"] as? NSArray
                    {
                        let id = myfav3[0] as! String
                        let rank = myfav3[1] as! String
                        let title = myfav3[2] as! String
                        let description = myfav3[3] as! String
                        let image = myfav3[4] as! String
                        self.vidRankArray.insert(rank, atIndex: 2)
                        self.vidIdArray.insert(id, atIndex: 2)
                        self.vidTitleArray.insert(title, atIndex: 2)
                        self.vidDescriptionArray.insert(description, atIndex: 2)
                        self.vidImageArray.insert(image, atIndex: 2)

                    }

我得到这样的行数.....

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{

    return self.vidIdArray.count
}

【问题讨论】:

    标签: arrays swift insert tableview


    【解决方案1】:

    您只能将项目插入到空数组的索引 0,而不是 1、2 或其他位置。同样,如果数组中有 1 项(索引为 0),则只能在索引 0 或索引 1 处插入对象。

    听起来您想将数组用作 n 个可以选择性填充的空格,但这不是这种数组的工作方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-22
      • 2021-11-02
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 2021-12-28
      相关资源
      最近更新 更多