UnR*_*ewa 10 properties redeclaration swift
我刚从swift 1.1更新到swift 1.2并得到编译错误:
Method 'setVacation' redeclares Objective-C method 'setVacation:'
Run Code Online (Sandbox Code Playgroud)
这里有一些代码:
var vacation : Vacation?
func setVacation(_vacation : Vacation)
{...}
Run Code Online (Sandbox Code Playgroud)
但我需要打电话 setVacation
有什么建议如何解决这个问题?
这是由Xcode 6.3beta发行说明中所述的变化引起的:
Swift现在可以检测Swift类型系统中的重载和覆盖之间的差异以及通过Objective-C运行时看到的有效行为.(18391046,18383574)例如,现在诊断出类中"属性"的Objective-C setter与其扩展中的方法"setProperty"之间存在以下冲突:
Run Code Online (Sandbox Code Playgroud)class A : NSObject { var property: String = "Hello" // note: Objective-C method 'setProperty:’ // previously declared by setter for // 'property’ here } extension A { func setProperty(str: String) { } // error: method ‘setProperty’ // redeclares Objective-C method //'setProperty:’ }
要解决此问题,您需要使所有方法签名都是唯一的(因为Objective-C不提供方法重载)
或者NSObject如果你只需要Swift课程,就不要继承.
| 归档时间: |
|
| 查看次数: |
3029 次 |
| 最近记录: |