Sto iniziando a imparare Swift e ho seguito le ottime lezioni video della Stanford University su YouTube. Ecco un link se sei interessato o aiuta (anche se non è necessario per capire il mio problema):
Sviluppo di app iOS 8 con Swift - 2. Più Xcode e Swift, MVC
Mentre seguivo le lezioni sono arrivato a un punto in cui (per quanto potevo dire) il mio codice era identico al codice nel video ma sul mio sistema ho riscontrato un errore del compilatore. Dopo molte prove ed errori sono riuscito a ridurre il mio codice a due esempi, uno dei quali genera un errore, l'altro o che non lo fa, ma non ho idea di cosa stia effettivamente causando l'errore o come risolverlo.
Il codice che crea l'errore è:
import UIKit
class BugViewController: UIViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
Questo crea il seguente errore del compilatore:
Il metodo 'perform' con il selettore Objective-C 'perform:' è in conflitto con la precedente dichiarazione con lo stesso selettore Objective-C
Semplicemente rimuovendo la sottoclasse di UIViewController il codice si compila:
import UIKit
class BugViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
Alcune altre informazioni che potrebbero essere o non essere rilevanti:
- Ho recentemente aggiornato a Yosemite.
- Quando ho installato Xcode, ho finito con una versione Beta (Versione 6.3 (6D543q)) perché (se ricordo bene) questa era la versione che dovevo eseguire sulla mia versione di OS X.
Spero per metà che questo sia un bug nel compilatore perché altrimenti non ha alcun senso per me. Qualsiasi aiuto ricevuto con gratitudine!