swift - 带有@escaping 回调的快速协议函数
问题描述
我创建了一个带有回调函数参数的函数定义的协议。但是当我尝试在实现协议的类中使用回调时,我得到了错误:
关闭使用非转义参数“callBack”可能允许它转义
该修复将@escaping标志添加到函数定义中,但随后不再确认协议中的函数定义。
这是我作为回调传递的函数:
private func handleSignUpRes(result:Bool, msg:String, uData:UserData){
if(result == false && (currVC != nil)){
Utilities.ShowAlert(title: "Error", msg: msg, vc: currVC!)
}
else if(result == true){
}
}
解决方案
您需要传入一个不会逃逸的闭包。
转义闭包是有可能在函数返回后执行的闭包。
重写你的闭包以确保它在函数返回后不能返回值。
不幸的是,没有看到闭包,我无法告诉你为什么闭包会逃逸。
当您发布关闭时,我将编辑我的答案。
推荐阅读
- sql - 基于 FOR LOOP 在 SQL Query 中使用 PLSQL 变量
- azure - 如何在 Azure Cosmos DB 中设置时区?
- laravel - SQLSTATE [42S02] 工匠修补程序的问题
- stream - 如何使用 exceljs 流读取 excel 文件
- python - Python curve_fit 创建奇角
- laravel - Laravel Backpack 管理员登录 419 页面已过期
- javascript - 如何解决 JEST 错误重复键值违反唯一约束“users_pkey”
- r - RShiny Code 在运行时会执行多次
- node.js - 用于监控电子应用的工具
- python - 将 XML 文件数据附加到 CSV 文件中