类别函数名称冲突,如何指定要使用的类别?

时间:2017-01-13 21:41:30

标签: ios swift afnetworking sdwebimage appboy

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

示例代码:

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

调用SDWebImage的功能,而不是AFNetworking。

1 个答案:

答案 0 :(得分:1)

您不能使用Objective-C类。如果两个类在一个类上实现相同的选择器,那么未定义哪一个被使用。这是消息调度在ObjC中的工作方式的结果。

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