如何在Swift类中调用Objective-C类的DraggingMovedBlock?
在Swift中调用Objective-C库的block方法
别担心,我来帮你把这段Objective-C代码转换成对应的Swift写法~
你在Objective-C里的调用是这样的:
[animationView setDraggingMovedBlock:^(UIView * view){ //some code }];
在Swift中,Objective-C的block会被映射为闭包,写法更简洁直观,直接用下面的方式调用就行:
animationView.setDraggingMovedBlock { view in // 在这里写你的业务代码 }
额外说明:
- 如果编译器无法自动推断参数类型,你可以显式指定参数类型,让代码更清晰:
animationView.setDraggingMovedBlock { (view: UIView) in // 你的代码 } - 要是闭包内部需要访问当前类的属性或方法,记得处理循环引用问题,通常用
[weak self]来避免:animationView.setDraggingMovedBlock { [weak self] view in guard let self = self else { return } // 安全访问self的成员,比如 self.updateUI() } - 另外,如果
draggingMovedBlock是animationView的一个属性(而非通过setter方法设置),你也可以直接赋值:animationView.draggingMovedBlock = { view in // 你的代码 }
内容的提问来源于stack exchange,提问作者Nabil El
相关产品推荐
相关产品推荐

