Swift 3, erreur de code..
Bonjour tout le monde,
Depuis vendredi dernier, j'ai mis à jour Xcode pour passer en 8.0 et avec l'arrivé de Swift 3, mon projet par complètement dans tout les sens.. je me retrouve avec beaucoup d'erreur..
J'arrive à en corriger la plupart sauf que là , je bloque particulièrement sur une..
En gros, dans mon main.storyboard, j'ai une vue qui renvoie vers une autre (via un bouton), le segue à comme identifiant : "segue1"
Dans mon ViewController.swift, j'ai ça :
override func shouldPerformSegueWithIdentifier(identifier: (String!), sender: AnyObject!) -> Bool {
print("segue ?")
if(identifier == "segue1"){
// code ici pour faire des tests
// return true ou false suivant le résultat
}
else{
// toute les autres pages
return true
}
}
Avant, ça fonctionnait bien.. et maintenant je me retrouve avec cette erreur :
Method does not override any method from its superclass
J'ai beau chercher, je trouve rien de concret, du coup, je m'en remet à vous ^^
Quelqu'un à déjà eu cette erreur ?
Pourquoi maintenant il ne veut pas que j'override la méthode alors qu'avant ça ne lui posait pas de problème ?
Réponses
J'parle pas Swift, mais je dirais :
La doc (actuelle, ie Swift 3) :
func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool
Ton code:
func shouldPerformSegueWithIdentifier(identifier: (String!), sender: AnyObject!) -> Bool {
Lors de mes tests, j'ai aussi essayé shouldPerformSegue, j'ai la même erreur
La signature de la meÌthode a changeÌ.
Le plus simple : tu commence à taper shouldPerformSegue dans l'éditeur d'Xcode et tu laisse l'autocompletion finir le nom de la méthode pour toi. ApreÌ€s tu c/c ton code et tu l'adapte au besoin.
Oui j'vois ce que tu veux dire, le soucis, c'est que là , même avec la bonne méthode, ça fonctionne pas
Du coup, je sais pas si j'ai oublié un truc ou pas.. mais dans l'idée, je pense pas.
D'où mon post pour voir si un truc vous saute aux yeux
D'ailleurs en supprimant override, je me retrouve avec cette erreur :
Du coup, je sais pas trop quoi faire là
Fais un clean sur le projet. Si ça ne va pas vire les DerivedData (google est ton copain). Si ça va toujours pas poste nous un bout de code en expliquant ce que ça doit faire et ce que ça fait. Si c'est un message d'erreur poste le avec
Rhaaa j'viens de trouver le soucis..
Dans ma déclaration de fonction j'avais :
override func shouldPerformSegue(withIdentifier identifier: String, sender: AnyObject!) -> Bool {
alors que c'était :
override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
Tout ça pour ça >_< !
Finalement j'aurai dû être plus attentif au message de Larme..
Je cloture pas le sujet, je sens que j'vais avoir d'autres soucis/questions avec Swift 3
J'me doutais que j'allais rencontrer d'autre problème ^^
J'vous explique le truc..
J'ai une tableview qui est censé charger des données via un json .. lorsque j'arrive sur cette page, je me retrouve avec l'erreur :
De vue, il y aurai un soucis avec numberOfRowsInSection
Dans mon code, elle est pourtant bien déclarée :
Mon tableview est bien relié au datasource et au delegate..
En googlant, j'ai testé quelques trucs mais rien n'a fonctionné..
Une idée pour me débloquer ?
Si tu utilise Swift 3, il faut utiliser les règles de code pour Swift 3. As-tu utiliser le "wizard" pour mettre à jour ton code ?
Regardes bien la bonne signature :
Bah pourtant je suis bien passé par le wizard pour mettre à jour mon code (qui m'a foutu un bordel pas possible d'ailleurs mais bon..)..
Enfin bref, j'étais passé à côté du "_ " qui change..
ça fait 2 fois que j'ai des erreurs et 2 fois que c'est un problème de signature que j'retrouve pas.. j'vais être plus vigilant à l'avenir
Merci Joanna ^^
Bonjour,
Bon, j'ai réussi à remettre en état mon application en swift 3, validée sur le store, c'est nickel ^^
Du coup, maintenant j'essaie d'intégrer les notifications (distantes) à mon projet mais à chaque tutos que je test, ça foire à un moment où un autre..
Lorsque j'avais fait des tests sur swift 2.2, ça fonctionnait bien, aucun soucis.
Depuis le passage à swift 3, impossible de trouver un tuto qui fonctionne bien
Du coup ma question est : Avez-vous un lien/tuto (anglais ou français) pour mettre en place les notifications distantes avec swift 3 ?
Merci de votre aide ^^
// Edit
Pour les notifications en swift 3, j'ai réussi à me débrouiller avec ces liens là :
https://github.com/ashishkakkad8/Notifications10Swift
http://stackoverflow.com/questions/37956482/registering-for-push-notifications-in-xcode-8-swift-3-0/39763879
https://www.sitepoint.com/developing-push-notifications-for-ios-10/(tout ce qui est code swift dans ce auto n'est pas top, du coup j'ai utilisé les 2 liens précédents pour faire le code swift mais la procédure pour les certificats est bonne..)