ios - 分类功能名称冲突,如何指定使用哪个分类?

标签 ios swift afnetworking sdwebimage appboy

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

示例代码:

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

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

最佳答案

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

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

关于ios - 分类功能名称冲突,如何指定使用哪个分类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41643872/

相关文章:

swift - 正确取消 View ​​模型中的任务

ios - SWIFT:在 uiscrollview 中无法按下按钮

ios - MultiBranding 相同的源代码而不使用 xcode

ios - 如何让带有嵌入式 UITableView 的 ContainerView 随着 tableView 单元格数量的变化而更新高度约束

ios - iOS7 中可能存在 UISwitch 错误?

enums - 当协议(protocol)包含 Swift 中的枚举时检查协议(protocol)一致性?

ios - AFNetworking 2.0 - 如何异步下载 uiimage

ios - AF网络 : Handling of asynchronous get request with AFJSONRequestOperation

ios - 将 NSData 与 NSDictionary 参数一起传递给 Web 服务

ios - FBSession : should only be used from a single thread