Swift - 带有Objective-C选择器'*'的方法'*()'与具有相同Objective-C选择器的超类'UIView'中的'*'的getter冲突

Posted

技术标签:

【中文标题】Swift - 带有Objective-C选择器\'*\'的方法\'*()\'与具有相同Objective-C选择器的超类\'UIView\'中的\'*\'的getter冲突【英文标题】:Swift - Method '*()' with Objective-C selector '*' conflicts with getter for '*' from superclass 'UIView' with the same Objective-C selectorSwift - 带有Objective-C选择器'*'的方法'*()'与具有相同Objective-C选择器的超类'UIView'中的'*'的getter冲突 【发布时间】:2016-10-28 09:52:24 【问题描述】:
 public var borderColor = UIColor.blackColor()

我在 Charts 框架中使用上述代码,但标题文本出现错误。

Toolx - Xcode -8 swift 2.3 旧版

【问题讨论】:

【参考方案1】:

尝试重命名borderColor 变量名。 ChartViewBase 似乎正在使用它。

另外,请更改自定义类中与基类变量名称和属性名称冲突的所有属性名称。

这应该可行..干杯!

【讨论】:

这样做后出现了一些新错误,我们可以通过 Skype 进行交流吗? 肯定会在 jatin.nandwani1 上打我【参考方案2】:

您必须更改它,因为超类已经声明它是属性(可能是UIView 这里),将其更改为lineChartBorderColor 或其他东西

【讨论】:

你能详细说明一下吗。 当然,在这里你的超类之一,可能是ChartViewBase 或者它的超类的UIView 已经有一个名为borderColor 的属性,因此如果你想覆盖它,你有创建完全相同的返回类型,或者给它一个新名称 这样做后出现了一些新错误,我们可以通过 Skype 进行交流

以上是关于Swift - 带有Objective-C选择器'*'的方法'*()'与具有相同Objective-C选择器的超类'UIView'中的'*'的getter冲突的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 7.3 / Swift 2:“没有使用 Objective-C 选择器声明的方法”警告

在 Objective-c 上使用静态 Swift 方法时,“选择器没有已知的类方法”

Objective-c 中的 swift 3 方法失败,没有可见的 @interface for 'MySwiftClass' 声明选择器 'addX:andY'

带有布尔参数的 Objective-C 方法中奇怪的“选择器修饰”

编译器错误:使用 Objective-C 选择器的方法与先前使用相同 Objective-C 选择器的声明冲突

swift 带有日期选择器的UITextField