【问题标题】:Category function name collision, how do I specify which category to use?分类函数名冲突,如何指定使用哪个分类?
【发布时间】:2017-01-13 21:41:29
【问题描述】:

我正在使用 AFNetworking 的 UIImageView+AFNetworking 类别在我的应用程序中异步加载图像。我添加了 AppBoy SDK 并将 SDWebImage 指定为依赖项。两个框架都实现了一个名为 setImageWithURL 的函数。当我在 UIImageView 上调用 setImageWithURL 时,有没有办法指定要使用的框架类别函数?

示例代码:

        [imageView1 setImageWithURL:[NSURL URLWithString:imageSource1]];

调用 SDWebImage 的函数而不是 AFNetworking 的函数。

【问题讨论】:

    标签: ios swift afnetworking sdwebimage appboy


    【解决方案1】:

    您不能使用 Objective-C 类。如果两个类别在一个类上实现相同的选择器,则不确定使用哪一个。这是 ObjC 中消息分发方式的结果。

    对于纯 Swift 类,您可以通过仅导入您实际希望在代码中使用的框架来选择要使用的扩展方法。对于 Swift 类的扩展,使用静态调度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-26
      • 2020-04-23
      • 2017-04-18
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多