Je commence à apprendre Swift et j'ai suivi les très bonnes conférences vidéo de l'Université de Stanford sur YouTube. Voici un lien si vous êtes intéressé ou si cela aide (bien qu'il ne soit pas nécessaire de comprendre mon problème):
Développer des applications iOS 8 avec Swift - 2. Plus Xcode et Swift, MVC
En suivant les cours, je suis arrivé à un point où (pour autant que je sache) mon code était identique au code de la vidéo mais sur mon système, j'ai eu une erreur de compilation. Après beaucoup d'essais et d'erreurs, j'ai réussi à réduire mon code à deux exemples, dont l'un génère une erreur, l'autre ou qui ne le fait pas, mais je n'ai aucune idée de ce qui cause réellement l'erreur ou comment la résoudre.
Le code qui crée l'erreur est:
import UIKit
class BugViewController: UIViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
Cela crée l'erreur de compilation suivante:
La méthode 'perform' avec le sélecteur Objective-C 'perform:' entre en conflit avec la déclaration précédente avec le même sélecteur Objective-C
En supprimant simplement la sous-classification de UIViewController, le code compile:
import UIKit
class BugViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
Quelques autres informations qui peuvent être pertinentes ou non:
- J'ai récemment mis à niveau vers Yosemite.
- Lorsque j'ai installé Xcode, je me suis retrouvé avec une version Beta (version 6.3 (6D543q)) parce que (si je me souviens bien), c'était la version dont j'avais besoin pour fonctionner sur ma version d'OS X.
J'espère à moitié que c'est un bogue dans le compilateur car sinon cela n'a aucun sens pour moi. Toute aide reçue avec reconnaissance!