objective-c - 将完成块从 swift 传递回目标
问题描述
试图从快速代码中获取完成块,但看起来我做错了什么。
我想为我的快速视图控制器复制的 objC 代码TestViewController
我只需要Bool
和BMError
返回完成块
我做错的代码:
TestViewController *changeVC = [[TestViewController alloc] initWithCompletionData:completion ];
我尝试像 objc 函数一样复制的快速代码:
@objc public class TestViewController {
var completionData: ((Bool, BMErrors?) -> Void)?
public required init?(coder aDecoder: NSCoder) {
fatalError("Not implemented")
}
@objc public init(completionData completion: ((Bool, BMErrors?) -> Void)?) {
super.init(nibName: nil, bundle: nil)
self.completionData = completion
}
func verifySuccess(result: QuestionResult, error: BMErrors?) {
if (result.success) {
// how to pass completionData
}
}
}
解决方案
你可以TestViewController.completionData
这样打电话:self.completionData?(false, error)
或者self.completionData?(false, nil)
如果你不想通过error
.
推荐阅读
- javascript - 在聊天 discord.js 之间传输嵌入消息
- javascript - heroku 中的后端重复插入/heroku 重复请求中的前端(我不知道)
- javascript - 简单的 jQuery 过滤器接受多个按钮单击的“AND”并相应地过滤卡片
- python - Pandas:如何将学生和科目的成绩表转换为按学生和科目索引的数据透视表
- dockerfile - AKS 容器无法启动
- c - C语言中的Modbus ASCII LRC生成
- javascript - 如何在ag-grid中默认对列进行排序?
- flutter - 如何在颤动中将容器堆叠在另一个容器内部或下方
- javascript - 如何访问数组中对象的名称属性
- c# - 当我们用字段调用替换静态方法调用时如何删除括号