【问题标题】:I can't override a method of a class imported from cocoapods in swift我无法快速覆盖从 cocoapods 导入的类的方法
【发布时间】:2016-07-04 14:15:21
【问题描述】:

我从 cocoapods 中安装了一个名为 SwiftHSVColorPicker 的 pod。它工作正常。但是当我尝试子类化这个 pod 的一个类(这是一个公共类)时,它在尝试覆盖方法 hueAndSaturationSelected(hue:saturation:) 时出现错误,说该方法在类中不存在。下面是打印我的子类: 下面是引用方法的打印:

如果尝试在 SwiftHSVColorPicker 类的同一文件夹中创建类,则表示静态库不支持 swift。 (除了我什至不知道这个类是否会在新的 pod install 的情况下保留在那里)。如何覆盖这个方法?

【问题讨论】:

  • 请问您是否尝试在扩展中覆盖此方法?也许您可以提供您的代码,以便我们更轻松地提供帮助
  • @H4Hugo 我用打印更新了问题。
  • 你试过删除'override'关键字吗?
  • 是的。它说:方法 'hueAndSaturationSelected(:saturation:)' 与 Objective-C 选择器 'hueAndSaturationSelected:saturation:' 与来自超类 'SwiftHSVColorPicker' 的方法 'hueAndSaturationSelected(:saturation:)' 具有相同的 Objective -C 选择器
  • 当我将private放在方法前面时,它避免了上面的错误,但是当我调用super的方法时,它一直说该类没有成员

标签: swift cocoapods


【解决方案1】:

我遇到了类似的问题,我只通过导入我要覆盖的文件来解决它。因此,在您的情况下,您可以添加#import SwiftHSVColorPicker/ClassYouAreOverriding.h

,而不是在子类的标题中添加#import SwiftHSVColorPicker/SwiftHSVColorPicker.h

【讨论】:

    猜你喜欢
    • 2014-01-08
    • 2012-07-29
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多