You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:32:54