Swift调用OC的Block
2016-12-20 本文已影响701人
乡水情缘
Swift调用OC的block是个难题,我反复试了几回都没有成功,最近偶然的一次实验才成功调用.
内容比较基础,主要是为了帮助和我一样被这个问题困扰的同学..
首先在MLSelectPhotoPickerViewController 定义一个block
typedef void(^callBackBlock)(id obj);
Oc的调用方法:
MLSelectPhotoPickerViewController *pickerVC = [[MLSelectPhotoPickerViewController alloc] init];
pickerVC.callBack = ^(NSArray *assects){
//
};
Swift的正确的调用方法:
let addWaterVC = MLSelectPhotoPickerViewController()
addWaterVC.callBack = { (AnyObject) -> () in
print(AnyObject!);
});
所以总结如下:
// oc的block
返回值(^名称)(类型 传值)
// swift里调用
名称 = {(传值)->(返回值) in
}