OC 与 Swift混编 Swift的闭包传值到OC中

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010095372/article/details/78799986

随着Swift的日益完善,终究会取代OC的地位,就像Kotlin取代Java一样,不是时间的问题,而是使用者愿意不愿意被时代淘汰的问题

首先是Swift中定义闭包

一定要注意在Swift的类前面加上@objcMembers,这样才能在OC中引用;在引用的变量前面加上@objc

@objcMembers class XuanzedituViewController: BaseViewController{
    typealias MapClosure = (Dictionary<String, Any>) -> Void
    @objc var blo:MapClosure?
}
//这样写就好了

在OC中接着,按block那样的写

XuanzedituViewController *xz = [[XuanzedituViewController alloc] init];
xz.blo=^(NSDictionary<NSString *,id> *d){
    //To do something
};
[_c.navigationController pushViewController:xz animated:YES];

就酱

猜你喜欢

转载自blog.csdn.net/u010095372/article/details/78799986