私はSwiftを学び始めており、YouTubeでスタンフォード大学の非常に優れたビデオ講義を続けています。興味があるか、役立つ場合のリンクは次のとおりです(ただし、私の問題を理解する必要はありません)。
Swiftを使用したiOS 8アプリの開発-2. XcodeとSwift、MVCの追加
講義を続けている間に、私のコードがビデオ内のコードと同じであるという点に達しましたが、私のシステムではコンパイラエラーが発生しました。多くの試行錯誤の結果、コードを2つの例に減らすことができました。1つはエラーを生成するもの、もう1つは生成しないものですが、実際にエラーを引き起こしている原因や解決方法はわかりません。
エラーを作成するコードは次のとおりです。
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で実行する必要があったためです。
これがコンパイラのバグであることを期待しています。それ以外の場合、これは私には意味がありません。助けてくれてとても感謝しています!