objective-c - Swift - Obj C 与闭包/块的互操作性
问题描述
我试图将一个 swift 类导入我的 Obj C 项目。一切正常,但我试图将此 Swift Closure 语句转换为 OBJ C。我相信这将是 obj c 中的一个块,但我似乎无法得到它,任何帮助将不胜感激!
斯威夫特宣言:
public var otpEnteredString :((String)->())?
视图控制器中的 Swift 使用:
ObjectName.otpEnteredString = { pin in
NSLog("The entered pin is %@",pin);
}
在 Obj C 我试图做
[ObjectName otpEnteredString:^(NSString *pin){
NSLog(@"The entered pin is %@",pin);
}];
但我得到标准“没有可见的界面声明选择器..任何帮助将不胜感激!
我可以在 xcode 中看到声明,但我不完全确定如何将其转换为 obj c
解决方案
尝试这个:
ObjectName.otpEnteredString = ^(NSString *pin){
NSLog(@"The entered pin is %@",pin);
};
或这个:
[ObjectName setOtpEnteredString:^(NSString *pin){
NSLog(@"The entered pin is %@",pin);
}];
推荐阅读
- gdb - GDB 调试错误——“localhost:3333: Operation timed out”
- python - 创建一个 Qt 显示
- sql - 使用带有内部连接的组找到列的平均值,然后通过组进行过滤
- javascript - 如何每隔一段时间用新项目更新nativescript radlistview
- javascript - usestate 或 uuid 库中的错误?
- reactjs - 运行“gatsby-develop”时无法解析“/path/node_modules/gatsby-react-router-scroll”中的“react-dom”
- python - 过滤熊猫中的行,带分隔符的列
- c++ - 这个二维数组如何访问分配的索引?
- python - 为什么我的代码停止读取 .js “..没有这样的文件或目录:'bank.json'”
- assembly - 以长格式编写函数调用(call / ret)