我开始学习Swift,并且一直在关注YouTube上非常好的斯坦福大学的视频讲座。这是一个链接,如果你感兴趣或它有帮助(尽管它不是必须理解我的问题):
使用Swift - 2开发iOS 8应用程序。更多的Xcode和Swift, MVC
在跟随讲座的时候,我得到了一个点(据我所知),我的代码与视频中的代码相同,但在我的系统上,我得到了一个编译器错误。经过大量的尝试和错误,我已经成功地将我的代码减少到两个示例,其中一个生成错误,另一个则不会,但我不知道是什么导致了错误或如何解决它。
产生错误的代码是:
import UIKit
class BugViewController: UIViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
这将创建以下编译器错误:
使用Objective-C选择器'perform: '的方法'perform'与前面使用同一Objective-C选择器的声明冲突
通过简单地删除UIViewController的子类代码编译:
import UIKit
class BugViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
其他一些可能相关或不相关的信息:
我最近升级到约塞米蒂。 当我安装Xcode时,我最终得到了测试版(版本6.3 (6D543q)),因为(如果我没记错的话)这是我在OS X版本上需要运行的版本。
我一半希望这是编译器中的一个bug,否则这对我来说没有任何意义。任何帮助都非常感激!