当前位置: 首页 > 面试题库 >

“试图从第1节中删除行,但是只有1个节在更新之前”

西门磊
2023-03-14
问题内容

我正在尝试删除不符合for循环条件的行。但是,我得到的错误提示是:“试图从第1节中删除第0行,但是在更新之前只有1个节。”我以前从未见过,也不知道为什么得到它。

我的代码:

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = theTableView.dequeueReusableCellWithIdentifier("MyCell") as! TableViewCell
    cell.titleLabel.text = titles[indexPath.row]
    cell.priceLabel.text = prices[indexPath.row]
    cell.descLabel.text = descs[indexPath.row]
    cell.itemImage.image = itemImages[indexPath.row]
    cell.userNumber = phoneNumbers[indexPath.row] as! String
    cell.timeLabel.text = datesHours[indexPath.row]! + "hr"
    cell.distanceLabel.text = String(locations[indexPath.row]!) + "mi"
    cell.viewController = self




    self.theTableView.beginUpdates()

    for (index, number) in self.locations {
        if number <= 5 {
            let indexPath = NSIndexPath(forRow: number, inSection: 1)
            self.theTableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)

        }
    }
    self.theTableView.endUpdates()

问题答案:

似乎您在告诉该表中将有比实际要显示的行更多的行,然后在事实之后将其删除。

相反,您应该检查数组中的元素是否满足(或之前)的条件numberOfRowsInSection,并将它们放入将实际显示的其他数组中,以便表知道实际将显示多少行。然后,cellForRowAtIndexPath只需使用新创建的数组即可,该数组具有实际显示的数据。

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // Return the number of rows in the section.

        self.displayArray = []
        for (index, number) in self.locations {
            if number <= 5 {
               self.displayArray.Add(self.locations[index])
            }
        }
        return self.displayArray.Count
    }

我假设您的错误与您尝试以首先尝试创建表的方法更新表有关。您正在尝试更新尚未完全创建的内容。



 类似资料:
  • 问题内容: 如果我有一个字节变量: 为什么以下工作: …但这不是吗? 编译器第一理解为第二吗? [编辑] 我知道演员,但我想提请您注意 我认为它们是平等的,那么为什么编译器会有所不同呢?之间有什么区别 问题答案: 因为是的等效项,而的类型被提升为(JLS§5.6.2二进制数值提升),因此,如果不进行显式转换,则不能将其结果分配给它。 根据JLS,§15.26.2复合赋值运算符: 形式为E1 op

  • 我目前正在试用Apache Spark。所有的组件(如HDFS、Spark、Yarn等)都运行良好。在任何这些程序的启动过程中,似乎都没有任何错误。我在一个Vagrant VM中运行它,并对spark/hdfs/yarn进行了对接。 tl;dr:通过Yarn提交作业会导致。 用以下文件提交我的应用程序: 其结果如下: 注意线程“main”org.apache.hadoop.ipc.RemoteEx

  • KnowledgePoint 知识要点 PreorderTraverse 先序遍历 InorderTraverse 中序遍历 PostorderTraverse 后序遍历 LevelorderTraverse 层序遍历 DepthFirstSearch 深度优先搜索 BreadthFirstSearch 广度优先搜索 TopologicalSort 拓扑排序 EulerCycle 欧拉回路

  • 问题内容: 在Java中,如何获取byte []数组并从数组中删除前16个字节?我知道我可能必须通过将阵列复制到新阵列中来执行此操作。任何例子或帮助将不胜感激。 问题答案: 参见Java库中的类:

  • 我正在尝试在上设置集群。当我给出命令时,主节点和从节点上的守护进程开始启动。但是当我在主节点上查看数据节点的日志文件时,我得到的是下面的EROOR 错误org.apache.hadoop.security.usergroupInformation:PriviledgedActionException as:Hadoop1原因:java.io.ioException:File/home/hadoop

  • 一、题目 给定单向链表的一个头指针和节点指针,定义一个函数在O(1)时间删除该节点。 二、解题思路 由于给定了节点指针,那么要删除该节点。只要把该节点的值替换为下一个节点的值,同时让该节点直接指向下一个节点的下一个节点。相当于顶包代替了下一个节点,该节点自然就不存在。 需要注意的是如果指定节点是头结点,那么直接把头结点定义为下一个节点即可。如果是尾节点,需要循环遍历到该节点,然后让尾节点的上一个节