如何在Swift中的for循环中插入数组中的元素?

时间:2015-11-16 04:03:54

标签: arrays swift insert tableview

我尝试使用来自一系列数组的潜在信息填充表格视图。我希望他们按顺序列在索引中。它是前十名,所以如果一个元素在某个时间不存在,它应该跳过它。我可以用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
}

1 个答案:

答案 0 :(得分:0)

您只能将项目插入空数组的索引0,而不是1,2或其他。类似地,如果数组中有1个项目(索引0处),则只能在索引0或索引1处插入对象。

听起来您希望将数组用作 n 空白空间,您可以选择性地填充这些空间,而这不是这种类型数组的工作方式。