我开始学习Swift,并一直在关注YouTube上非常好的斯坦福大学视频讲座.以下是一个链接,如果你感兴趣或它有帮助(尽管不需要了解我的问题):
Developing iOS 8 Apps with Swift - 2. More Xcode and Swift, MVC
在听完讲座后,我发现(据我所知)我的代码与视频中的代码完全相同,但在我的系统中,我遇到了一个编译器错误.经过大量的try 和错误,我成功地将代码缩减为两个示例,其中一个生成错误,另一个不生成错误,但我不知道是什么导致了错误,也不知道如何解决错误.
产生错误的代码是:
import UIKit
class BugViewController: UIViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
这会产生以下编译器错误:
方法"perform"与Objective-C Select 器"perform:"与之前使用同一Objective-C Select 器的声明冲突
只需删除UIViewController的子类,代码即可编译:
import UIKit
class BugViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
其他一些可能相关或不相关的信息:
- 我最近升级到了约塞米蒂.
- 当我安装Xcode时,我最终得到了一个测试版(版本6.3(6D543q)),因为(如果我没记错的话)这是我需要在我的OS X版本上运行的版本.
我有点希望这是编译器中的一个bug,否则这对我来说毫无意义.感谢您的帮助!