Ich fange an, Swift zu lernen und habe die sehr guten Videovorträge der Stanford University auf YouTube verfolgt. Hier ist ein Link, wenn Sie interessiert sind oder es hilft (obwohl es nicht erforderlich ist, mein Problem zu verstehen):
Entwickeln von iOS 8-Apps mit Swift - 2. Mehr Xcode und Swift, MVC
Während ich den Vorlesungen folgte, kam ich zu einem Punkt, an dem (soweit ich das beurteilen konnte) mein Code mit dem Code im Video identisch war, aber auf meinem System ein Compilerfehler auftrat. Nach vielen Versuchen und Irrtümern habe ich es geschafft, meinen Code auf zwei Beispiele zu reduzieren, von denen eines einen Fehler erzeugt, das andere oder nicht, aber ich habe keine Ahnung, was den Fehler tatsächlich verursacht oder wie er behoben werden kann.
Der Code, der den Fehler verursacht, lautet:
import UIKit
class BugViewController: UIViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
Dies erzeugt den folgenden Compilerfehler:
Methode 'perform' mit Objective-C-Selektor 'perform:' widerspricht der vorherigen Deklaration mit demselben Objective-C-Selektor
Durch einfaches Entfernen der Unterklasse von UIViewController wird der Code kompiliert:
import UIKit
class BugViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
Einige andere Informationen, die relevant sein können oder nicht:
- Ich habe kürzlich ein Upgrade auf Yosemite durchgeführt.
- Als ich Xcode installiert habe, habe ich eine Beta-Version (Version 6.3 (6D543q)) erhalten, da dies (wenn ich mich richtig erinnere) die Version war, die ich für meine Version von OS X benötigte.
Ich hoffe halb, dass dies ein Fehler im Compiler ist, da dies sonst für mich keinen Sinn ergibt. Jede Hilfe sehr dankbar erhalten!