J'ai mis à jour mon Xcode vers Xcode 8 et accepté toutes les mises à jour, mais un message d'erreur me dit que "Command failed due to signal: Segmentation fault: 11"
notez que je suis conscient que cette question est très proche de celle-ci:
Erreur de compilation Xcode 7: "La commande a échoué à cause du signal: Erreur de segmentation: 11"
notez aussi que j'utilise un serveur d'analyse, je doute que cela ait quelque chose à voir avec cela, mais je pensais le mentionner au cas où.
mais cela n'a pas résolu mon problème. Quelqu'un l'a-t-il eu/résolu?
merci !
Ceci est un problème dynamique avec Xcode mais peut être résolu en modifiant votre propre code d’une manière ou d’une autre. Cela m'est arrivé pendant la migration du code de Swift2.3 vers Swift3.1
Dans mon cas, l'erreur est apparue dans une définition de méthode et la méthode est attachée sous la forme d'un @IBAction pour un UIButton.
@IBAction func changeButtonTapped(_ sender: AnyObject) {
// some code
}
Changer le code ci-dessus en suivant a résolu le problème de défaut de segmentation pour moi.
@IBAction func changeButtonTapped(_ sender: Any) {
// some code
}
EDIT1: Un autre cas de cette erreur de segmentation est apparu.
Cette fois, il était dû à la nouvelle déclaration d'une variable dans une portée plus élevée et à l'utilisation de la même dans l'instruction if Exemple de code:
// 'var1' is defined in higher scope
func someFunction() {
if let var2 = var1,
let var1 = someValue {
// some code
}
}
Xcode a été confondu quant à la variable nommée 'var1' à utiliser pour définir var2 . Changer les noms en quelque chose d'autre résoudra le défaut seg.
Nous avons rencontré le même problème. Cette réponse a résolu notre problème: Erreur de segmentation du compilateur Swift lors de la construction
Vous devez déballer toutes les options avant de pouvoir les utiliser dans une instruction if.
Dans mon cas, l'erreur se produit avec un code similaire à ceci:
class AClass {
var url: String?
func aMethod() {
guard let urlString = url, let url = URL(string: urlString) else {
// Use `url`
}
}
}
Cause:
Le fait que url
soit un instance var facultatif que je décompresse en lui-même semble faire planter le compilateur Swift.
Localisation du problème:
Ce qui est intéressant et qui peut vous donner une idée de l'emplacement du code incriminé, c'est que (du moins dans mon cas) l'éditeur Xcode se bloque également pendant que vous écrivez le code:
Solution:
Dans mon cas, il me suffisait de décompresser l'instance optionnelle var
dans une autre variable plutôt que d'elle-même (ce qui était stupide au départ ...). Par exemple.:
class AClass {
var url: String?
func aMethod() {
guard let urlString = url, let actualUrl = URL(string: urlString) else {
// Use `actualUrl`
}
}
}
La cause la plus probable est une erreur de code que XCode n'a pas détectée car son analyse intégrée est en panne/ne suit pas. Redémarrer simplement XCode devrait vous montrer où l’erreur est dans votre code.