代码之家  ›  专栏  ›  技术社区  ›  Nazim Kerimbekov Gusev Slava

如何在swift中有效使用处理程序?

  •  0
  • Nazim Kerimbekov Gusev Slava  · 技术社区  · 6 年前

    我最近开始学习Swift和Xcode文档。尽管如此,我在处理程序方面仍然面临一些问题,如下面的代码所示:

    let deleteAction = UIContextualAction(style: .destructive, title: "Delete") { (action, sourceView, completionHandler) in
        // Delete the row from the data source
        self.restaurantNames.remove(at: indexPath.row)
        self.restaurantLocations.remove(at: indexPath.row)
        self.restaurantTypes.remove(at: indexPath.row)
        self.restaurantIsVisited.remove(at: indexPath.row)
        self.restaurantImages.remove(at: indexPath.row)
    
        self.tableView.deleteRows(at: [indexPath], with: .fade)
    
        // Call completion handler with true to indicate
        completionHandler(true)
    }
    

    我不太明白为什么我正在学习的教程(appcoda)已经写好了 (action, sourceView, completionHandler) . 为了更好地理解,我尝试将此元组更改为 (操作、sourceView、completionHandler) 它产生了同样的结果,这让我很惊讶。因此,我想问你们,我应该在这些元组中放入什么,它们有什么用途?

    1 回复  |  直到 5 年前
        1
  •  2
  •   Rashwan L    6 年前

    这些是闭包的参数,当 completionHandler 被调用。他们就是这样:

    措施:

    包含所选操作信息的对象。

    源视图:

    显示操作的视图。

    completionHandler:

    在执行之后要执行的处理程序块 行动此块没有返回值,并采用以下内容 参数: 已执行的操作 一个布尔值,指示是否执行了操作。具体说明 如果执行了操作,则为true;如果无法执行,则为false 出于某种原因执行该操作。

    参考和更多信息 here here .