Je reçois l'erreur ...
La commande a échoué en raison du signal: Erreur de segmentation: 11
... en essayant de compiler mon application Swift. J'utilise Xcode 6.1 pour créer un iPhone 5 sur iOS 8.1.
Mon code
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var username: UITextField!
@IBAction func signIn(sender: AnyObject) {
PFUser.logInWithUsernameInBackground(username.text, password:"mypass") {
(user: PFUser!, error: NSError!) -> Void in
if user != nil {
println("Logged In")
} else {
func myMethod() {
var user = PFUser()
user.username = username.text
user.password = " "
user.signUpInBackgroundWithBlock {
(succeeded: Bool!, error: NSError!) -> Void in
if error == nil {
// Hooray! Let them use the app now.
} else {
println("Signed Up")
}
}
}
println(error)
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
Parse.setApplicationId("key here")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Et le texte d'erreur!
CompileSwift normal arm64 /Users/Alec/Desktop/Re-Chat/Re-Chat/Re-Chat/ViewController.Swift
cd /Users/Alec/Desktop/Re-Chat/Re-Chat
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/Swift -frontend -c -primary-file /Users/Alec/Desktop/Re-Chat/Re-Chat/Re-Chat/ViewController.Swift /Users/Alec/Desktop/Re-Chat/Re-Chat/Re-Chat/AppDelegate.Swift -target arm64-Apple-ios8.0 -Xllvm -aarch64-use-tbi -target-cpu cyclone -target-abi darwinpcs -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk -I /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Products/Debug-iphoneos -F /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Products/Debug-iphoneos -F /Users/Alec/Desktop/Re-Chat/Re-Chat/Re-Chat -g -import-objc-header /Users/Alec/Desktop/Re-Chat/Re-Chat/Re-Chat/Re-Chat-Bridging-Header.h -module-cache-path /Users/Alec/Library/Developer/Xcode/DerivedData/ModuleCache -Xcc -I/Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Swift-overrides.hmap -Xcc -iquote -Xcc /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Re-Chat-generated-files.hmap -Xcc -I/Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Re-Chat-own-target-headers.hmap -Xcc -I/Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Re-Chat-all-target-headers.hmap -Xcc -iquote -Xcc /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Re-Chat-project-headers.hmap -Xcc -I/Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Products/Debug-iphoneos/include -Xcc -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -Xcc -I/Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/DerivedSources/arm64 -Xcc -I/Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/DerivedSources -Xcc -DDEBUG=1 -emit-module-doc-path /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Objects-normal/arm64/ViewController~partial.swiftdoc -Onone -module-name Re_Chat -emit-module-path /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Objects-normal/arm64/ViewController~partial.swiftmodule -serialize-diagnostics-path /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Objects-normal/arm64/ViewController.dia -emit-dependencies-path /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Objects-normal/arm64/ViewController.d -o /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Objects-normal/arm64/ViewController.o
0 Swift 0x0000000108145a68 llvm::sys::PrintStackTrace(__sFILE*) + 40
1 Swift 0x0000000108145f54 SignalHandler(int) + 452
2 libsystem_platform.dylib 0x00007fff86631f1a _sigtramp + 26
3 libsystem_platform.dylib 0x00007fd0ac1eb010 _sigtramp + 633049360
4 Swift 0x00000001075d4517 Swift::Lowering::SILGenFunction::emitClosureValue(Swift::SILLocation, Swift::SILDeclRef, llvm::ArrayRef<Swift::Substitution>, Swift::AnyFunctionRef) + 1303
5 Swift 0x00000001075c599e Swift::Lowering::SILGenFunction::visitFuncDecl(Swift::FuncDecl*) + 190
6 Swift 0x000000010760987c Swift::Lowering::SILGenFunction::visitBraceStmt(Swift::BraceStmt*) + 380
7 Swift 0x000000010760c8e8 Swift::ASTVisitor<Swift::Lowering::SILGenFunction, void, void, void, void, void, void>::visit(Swift::Stmt*) + 152
8 Swift 0x000000010760a0a5 Swift::Lowering::SILGenFunction::visitIfStmt(Swift::IfStmt*) + 757
9 Swift 0x000000010760c8f6 Swift::ASTVisitor<Swift::Lowering::SILGenFunction, void, void, void, void, void, void>::visit(Swift::Stmt*) + 166
10 Swift 0x00000001076097e8 Swift::Lowering::SILGenFunction::visitBraceStmt(Swift::BraceStmt*) + 232
11 Swift 0x000000010760c8e8 Swift::ASTVisitor<Swift::Lowering::SILGenFunction, void, void, void, void, void, void>::visit(Swift::Stmt*) + 152
12 Swift 0x00000001075d52dd Swift::Lowering::SILGenFunction::emitClosure(Swift::AbstractClosureExpr*) + 205
13 Swift 0x00000001075b4234 Swift::Lowering::SILGenModule::emitClosure(Swift::AbstractClosureExpr*) + 196
14 Swift 0x00000001075eef71 (anonymous namespace)::RValueEmitter::visitAbstractClosureExpr(Swift::AbstractClosureExpr*, Swift::Lowering::SGFContext) + 97
15 Swift 0x00000001075e1866 Swift::ASTVisitor<(anonymous namespace)::RValueEmitter, Swift::Lowering::RValue, void, void, void, void, void, Swift::Lowering::SGFContext>::visit(Swift::Expr*, Swift::Lowering::SGFContext) + 2870
16 Swift 0x00000001075e24da Swift::ASTVisitor<(anonymous namespace)::RValueEmitter, Swift::Lowering::RValue, void, void, void, void, void, Swift::Lowering::SGFContext>::visit(Swift::Expr*, Swift::Lowering::SGFContext) + 6058
17 Swift 0x00000001075cfa0b Swift::Lowering::SILGenFunction::emitExprInto(Swift::Expr*, Swift::Lowering::Initialization*) + 235
18 Swift 0x00000001075ae824 Swift::Lowering::RValueSource::materialize(Swift::Lowering::SILGenFunction&) && + 196
19 Swift 0x0000000107604a69 Swift::Lowering::RValueSource::materialize(Swift::Lowering::SILGenFunction&, Swift::Lowering::AbstractionPattern, Swift::SILType) && + 233
20 Swift 0x00000001075f371c Swift::Lowering::SILGenFunction::emitInjectOptionalValueInto(Swift::SILLocation, Swift::Lowering::RValueSource&&, Swift::SILValue, Swift::Lowering::TypeLowering const&) + 268
21 Swift 0x00000001075e9b8d Swift::ASTVisitor<(anonymous namespace)::RValueEmitter, Swift::Lowering::RValue, void, void, void, void, void, Swift::Lowering::SGFContext>::visit(Swift::Expr*, Swift::Lowering::SGFContext) + 36445
22 Swift 0x00000001075e3e2b Swift::ASTVisitor<(anonymous namespace)::RValueEmitter, Swift::Lowering::RValue, void, void, void, void, void, Swift::Lowering::SGFContext>::visit(Swift::Expr*, Swift::Lowering::SGFContext) + 12539
23 Swift 0x00000001075e202b Swift::ASTVisitor<(anonymous namespace)::RValueEmitter, Swift::Lowering::RValue, void, void, void, void, void, Swift::Lowering::SGFContext>::visit(Swift::Expr*, Swift::Lowering::SGFContext) + 4859
24 Swift 0x00000001075cfab6 Swift::Lowering::SILGenFunction::emitRValue(Swift::Expr*, Swift::Lowering::SGFContext) + 22
25 Swift 0x00000001075bffc4 (anonymous namespace)::ArgEmitter::emitExpanded(Swift::Lowering::RValueSource&&, Swift::Lowering::AbstractionPattern) + 836
26 Swift 0x00000001075bf582 (anonymous namespace)::ArgEmitter::emit(Swift::Lowering::RValueSource&&, Swift::Lowering::AbstractionPattern) + 98
27 Swift 0x00000001075b7ff8 (anonymous namespace)::CallEmission::apply(Swift::Lowering::SGFContext) + 1128
28 Swift 0x00000001075b751a Swift::Lowering::SILGenFunction::emitApplyExpr(Swift::ApplyExpr*, Swift::Lowering::SGFContext) + 58
29 Swift 0x00000001075e0d81 Swift::ASTVisitor<(anonymous namespace)::RValueEmitter, Swift::Lowering::RValue, void, void, void, void, void, Swift::Lowering::SGFContext>::visit(Swift::Expr*, Swift::Lowering::SGFContext) + 81
30 Swift 0x00000001075ea00d Swift::Lowering::SILGenFunction::emitIgnoredExpr(Swift::Expr*) + 237
31 Swift 0x0000000107609829 Swift::Lowering::SILGenFunction::visitBraceStmt(Swift::BraceStmt*) + 297
32 Swift 0x000000010760c8e8 Swift::ASTVisitor<Swift::Lowering::SILGenFunction, void, void, void, void, void, void>::visit(Swift::Stmt*) + 152
33 Swift 0x00000001075d4ee0 Swift::Lowering::SILGenFunction::emitFunction(Swift::FuncDecl*) + 256
34 Swift 0x00000001075b3659 Swift::Lowering::SILGenModule::emitFunction(Swift::FuncDecl*) + 233
35 Swift 0x00000001075cea93 Swift::ASTVisitor<SILGenType, void, void, void, void, void, void>::visit(Swift::Decl*) + 355
36 Swift 0x00000001075cd7eb SILGenType::emitType() + 203
37 Swift 0x00000001075c85ae Swift::Lowering::SILGenModule::visitNominalTypeDecl(Swift::NominalTypeDecl*) + 30
38 Swift 0x00000001075b555b Swift::Lowering::SILGenModule::emitSourceFile(Swift::SourceFile*, unsigned int) + 395
39 Swift 0x00000001075b581a Swift::SILModule::constructSIL(Swift::Module*, Swift::SourceFile*, Swift::Optional<unsigned int>) + 314
40 Swift 0x00000001075b5968 Swift::performSILGeneration(Swift::SourceFile&, Swift::Optional<unsigned int>) + 72
41 Swift 0x000000010748be18 frontend_main(llvm::ArrayRef<char const*>, char const*, void*) + 3432
42 Swift 0x000000010748996d main + 1677
43 libdyld.dylib 0x00007fff8aa4c5c9 start + 1
Stack dump:
0. Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/Swift -frontend -c -primary-file /Users/Alec/Desktop/Re-Chat/Re-Chat/Re-Chat/ViewController.Swift /Users/Alec/Desktop/Re-Chat/Re-Chat/Re-Chat/AppDelegate.Swift -target arm64-Apple-ios8.0 -Xllvm -aarch64-use-tbi -target-cpu cyclone -target-abi darwinpcs -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk -I /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Products/Debug-iphoneos -F /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Products/Debug-iphoneos -F /Users/Alec/Desktop/Re-Chat/Re-Chat/Re-Chat -g -import-objc-header /Users/Alec/Desktop/Re-Chat/Re-Chat/Re-Chat/Re-Chat-Bridging-Header.h -module-cache-path /Users/Alec/Library/Developer/Xcode/DerivedData/ModuleCache -Xcc -I/Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Swift-overrides.hmap -Xcc -iquote -Xcc /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Re-Chat-generated-files.hmap -Xcc -I/Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Re-Chat-own-target-headers.hmap -Xcc -I/Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Re-Chat-all-target-headers.hmap -Xcc -iquote -Xcc /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Re-Chat-project-headers.hmap -Xcc -I/Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Products/Debug-iphoneos/include -Xcc -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -Xcc -I/Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/DerivedSources/arm64 -Xcc -I/Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/DerivedSources -Xcc -DDEBUG=1 -emit-module-doc-path /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Objects-normal/arm64/ViewController~partial.swiftdoc -Onone -module-name Re_Chat -emit-module-path /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Objects-normal/arm64/ViewController~partial.swiftmodule -serialize-diagnostics-path /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Objects-normal/arm64/ViewController.dia -emit-dependencies-path /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Objects-normal/arm64/ViewController.d -o /Users/Alec/Library/Developer/Xcode/DerivedData/Re-Chat-awwdkmqavitiqkcdsphwnhzhzzfb/Build/Intermediates/Re-Chat.build/Debug-iphoneos/Re-Chat.build/Objects-normal/arm64/ViewController.o
1. While emitting SIL for 'signIn' at /Users/Alec/Desktop/Re-Chat/Re-Chat/Re-Chat/ViewController.Swift:14:15
2. While silgen closureexpr SIL function @_TFFC7Re_Chat14ViewController6signInFS0_FPSs9AnyObject_T_U_FTGSQCSo6PFUser_GSQCSo7NSError__T_ for expression at [/Users/Alec/Desktop/Re-Chat/Re-Chat/Re-Chat/ViewController.Swift:16:80 - line:45:9] RangeText="{
(user: PFUser!, error: NSError!) -> Void in
if user != nil {
// Do stuff after successful login.
println("Logged In")
} else {
func myMethod() {
var user = PFUser()
user.username = username.text
user.password = ""
// other fields can be set just like with PFObject
user.signUpInBackgroundWithBlock {
(succeeded: Bool!, error: NSError!) -> Void in
if error == nil {
// Hooray! Let them use the app now.
} else {
println("Signed Up")
}
}
}
println("error")
}
}"
Pour tous ceux qui rencontrent cela… J'ai trouvé que le problème était dû à l'importation d'un framework personnalisé, je ne sais pas comment le corriger. Cependant, le simple fait de supprimer l'importation et tous les éléments de référence de code de la structure résout le problème.
(□ ° □ °) ╯︵
J'espère que cela permettra à quelqu'un de gagner quelques heures à chercher quelle ligne est à l'origine du problème.
Vous pouvez obtenir cette erreur lorsque le compilateur est trop confus quant à ce qui se passe dans votre code. J'ai remarqué que vous avez un certain nombre de fonctions qui semblent être imbriquées dans des fonctions. Vous pouvez essayer de commenter certaines de ces choses à la fois pour voir si l'erreur disparaît. De cette façon, vous pouvez vous concentrer sur le problème. Vous ne pouvez pas utiliser de points d'arrêt car il s'agit d'une erreur de compilation, pas d'une erreur d'exécution.
J'ai récemment rencontré le même problème, et je vais essayer de généraliser la façon dont je l'ai résolu, car beaucoup de ces réponses sont trop spécifiques pour être utiles à tout le monde.
1. Commencez par regarder le bas du message d'erreur pour identifier le fichier et la fonction à l'origine de l'erreur de segmentation.
2. Ensuite, je regarde cette fonction et la commente. J'ai compilé et cela a fonctionné maintenant. Ensuite, j'ai supprimé les commentaires de certaines parties de la fonction à la fois, jusqu'à ce que je frappe la ligne responsable de l'erreur. Après cela, j'ai pu le réparer et tout fonctionne. :)
Pour moi, cela était dû à une modification de la syntaxe SDK Parse in Swift 2.0. Si vous utilisez Parse et que vous effectuez une mise à niveau vers Swift 2.0, la syntaxe suivante est modifiée:
Swift 1.2:
myPFQuery.findObjectsInBackgroundWithBlock({ (queryResults: [AnyObject]?, error: NSError?) -> Void in
// CODE
})
Swift 2.0:
myPFQuery.findObjectsInBackgroundWithBlock { (queryResults: [PFObject]?, error: NSError?) -> Void in
// CODE
}
L'élimination du premier "(" et du dernier ") est ce qui causait le plus gros problème. Il m'a fallu des années pour trouver ça!
Lorsque j'ai eu cette erreur lors de la conversion de Swift en Swift 2.0, il indique clairement un fichier particulier (blahClass.Swift) présentant le problème, puis il a souligné tous les avertissements et toutes les erreurs qu'il contient. le texte du message d'erreur. J'ai parcouru et résolu ces problèmes manuellement et maintenant l'application compile bien.
object.doubleValue = dict["doublevalue"] as! Int
J'ai trouvé la raison après avoir annulé chaque étape que j'ai faite… .pression forcée vers Int pour une variable double
Je frappe cette erreur. Après une certaine frustration, j'ai essayé Xcode Clean et tout a recommencé à fonctionner. Je laisse ceci ici pour référence future.
Pour moi, cela a été causé par certains de mes codes. La sortie détaillée du compilateur dans XCode a en fait indiqué la méthode où il se plantait.
J'ai ensuite commenté tout le code de la méthode, je l'ai renvoyé à zéro et la compilation a été effectuée. J'ai ensuite ré-implémenté la méthode en utilisant un code différent et beaucoup plus simple, et cela a fonctionné.
J'ai déposé un rapport de bogue avec Apple. C’est le code - certes un peu fou - qui a provoqué le crash dans XCode 7/Swift 2.0.
func numberAndTitleFromDirectoryName(dirName: String) -> (Int, String)? {
let components = dirName.characters.split(maxSplit: 1, allowEmptySlices: false) { $0 == " " }.map { String($0) }.map { String($0) }
if let number = components.first?.toInt() {
if let title = components.last {
return (number, title)
}
}
return nil;
}
Je suppose que la fonction de carte l’a un peu surexcitée ... La nouvelle version est beaucoup plus simple et plus compréhensible. Le compilateur ne devrait toujours pas tomber en panne. Au pire, il devrait y avoir des erreurs. Le code tel qu’il est utilisé dans Swift 1.x
J'ai eu un problème similaire avec Xcode 7.3 et iOS 9.3. Command failed due to signal: Segmentation fault: 11
Les étapes de base telles que le code de nettoyage (cmd + shift + k), la suppression des données dérivées et la fermeture de Xcode ne fonctionnaient pas.
Il y avait un coupable dans mon code.
C'était _[txtUserName.text.characters.count = 0]
_
Dans votre cas Passez en revue votre code et corrigez le coupable.
L'un des cas, c'est que vous avez nommé le type de données de la variable getter comme son nom. Par exemple:
var someInstance: someInstance {...
Mise à jour # 1. Gardez l’attention sur _ a variable qui n’est pas Int et vous oubliez de pointer à droite le type de retour. Le problème se produit dans plus de deux opérandes de l'opérateur infix.
function getInt(value: Int) -> Int {
return _a? ?? _b?.count ?? 0
}
Solution facile si vous utilisez Git.
1) En terminal:
git stash
2) La faute de segmentation disparaît.
) Lancer l'application.
4) En terminal:
git stash pop
5) Xcode vous indique maintenant le vrai problème.
Tout crash est un bogue du compilateur (que votre code soit valide ou non). Essayez la dernière version bêta et si elle se bloque toujours, envoyez un rapport de bogue à l’adresse bugs.Swift.org . L'équipe Swift est très réactive sur ces derniers.
J'utilise Xcode 8.3/Swift 3
J'ai utilisé la réponse de @Ron B. pour parcourir tout le code et commenter différentes fonctions jusqu'à ce que la construction soit réussie. Il s’avère que c’est async trailing closures
qui a causé mon erreur:
Mes dernières fermetures:
let firstTask = DispatchWorkItem{
//self.doSomthing()
}
let secondTask = DispatchWorkItem{
//self.doSomthingElse()
}
//trailing closure #1
DispatchQueue.main.asyncAfter(deadline: .now() + 10){firstTask}
//trailing closure #2
DispatchQueue.main.asyncAfter(deadline: .now() + 20){secondTask}
ne fois que j'ai utilisé la syntaxe autocomplete le Segmentation fault: 11
était Gone
//autocomplete syntax closure #1
DispatchQueue.main.asyncAfter(deadline: .now() + 10, execute: firstTask)
//autocomplete syntax closure #2
DispatchQueue.main.asyncAfter(deadline: .now() + 20, execute: secondTask)
J'ai le même problème alors j'ai essayé de changer le niveau d'optimisation sur Optimisation rapide, fichier unique [-O] au lieu de Optimisation rapide et complète du module , puis cela a fonctionné, construit, archiver sur Appstore avec succès.
Certains frameworks que nous avons utilisés ont besoin de refactoriser pour nous adapter au niveau Rapide, Optimisation du module complet , je pense. Mais je n'ai toujours pas trouvé ce cadre.
Je me suis débarrassé de cette erreur en suivant.
De nombreux frameworks ont été ajoutés dans "Link Binary With Libraries" et utilisais également un en-tête de pontage.
J'ai ré-ajouté tous les cadres et ajouté à nouveau l'en-tête de pontage. Cela a résolu mon problème.
Lisez attentivement le message de débogage.
dans mon cas, j'ai rencontré cette erreur parce que j'ai utilisé un simple '=' au lieu de double '=' par erreur dans if-statement.
if aString.characters.count = 2 {...}
J'ai aussi rencontré le Segmentation fault: 11 error
parce que j'appelais une méthode qui renvoyait Any object
et que le compilateur a été dérouté pour comprendre le type d'objet utilisé.
Le casting de Any object
sur le type requis que j'utilisais a résolu mon problème.
Dans mon cas, la raison était d'avoir une classe déclarée dans une autre classe dans une extension.
extension classOrig {
class classChild {
class classGrandChild {
static let aVariable : String = "SomeValue";
}
}
}
Cela a généré l'erreur de mon côté. J'ai eu plusieurs cadres dans mon projet, mais cela ne s'était jamais produit auparavant.
Dans mon cas, le coupable était passage d'un tableau à la place d'un paramètre variadique. C'est-à-dire pour la signature:
// Note the variadic parameter
func addSubview(subview subview: UIView, constrain: NSLayoutAttribute...)
Je suis passé dans:
// Compile-time error, "constrain" parameters have array brackets
someUIView.addSubview(subview: someOtherView, constrain: [.Leading, .Top, .Bottom, .Trailing])
plutôt que:
// Correct
someUIView.addSubview(subview: someOtherView, constrain: .Leading, .Top, .Bottom, .Trailing)
J'ai eu cette ligne dans mon code
weakSelf?.notifications = weakSelf?.notifications ?? [] + weakSelf?.chatNotificationDataSource ?? []
cela cause une erreur de segmentation. Mais ensuite je l'ai changé de cette façon:
weakSelf?.notifications = (weakSelf?.notifications ?? []) + (weakSelf?.chatNotificationDataSource ?? [])
et l'application a commencé à fonctionner.
J'ai eu ce code 11 en essayant de construire pour le schéma de publication. Il a souligné une classe de contrôleur de vue (Swift) contenant ce code:
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
stuff...
}
Le problème était que lorsque j'ai ajouté la superclasse à celle-ci, j'ai oublié d'implémenter également init. Ainsi, super.init a provoqué une erreur du compilateur Erreur de segmentation: 11 Donc, si vous rencontrez un tel problème, il est judicieux de vérifier également les superclasses.
Lorsque votre cible de développement ne prend en charge aucun UIControl
Dans mon cas, j'utilisais StackView
dans un projet avec une cible de développement 8.0
. Cette erreur peut survenir si votre cible de développement ne prend en charge aucun UIControl.
Lorsque vous définissez une cible incorrecte
Au-dessous de la ligne, si vous laissez la cible par défaut "cible" au lieu de vous-même, l'erreur de segmentation 11 se produit.
shareBtn.addTarget(self, action: #selector(ViewController.share(_:)), for: .touchUpInside)
J'ai eu une erreur de segmentation sur mon Mac Mini avec Xcode Bots. Le défaut de segmentation ne s'est produit que pendant la phase de construction du test et non pendant la construction ou l'exécution locale. Uniquement dans les robots Xcode lors de la phase de construction du test.
J'utilise macOS Sierra et Xcode 8, avec le code converti en Swift 2.3.
J'ai finalement trouvé la ligne à l'origine de la faute seg, causée par:
public let isIpad = UIDevice.currentDevice().userInterfaceIdiom == .Pad
Ce qui a été déclaré en dehors d'une classe comme une constante. Le changer pour vérifier le userInterfaceIdiom au moment de l'exécution corrigeait le problème.
J'espère que cela aide quelqu'un d'autre!
Voici le journal des erreurs pour mon erreur de segmentation:
0 Swift 0x000000010f93d76b llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 43
1 Swift 0x000000010f93ca56 llvm::sys::RunSignalHandlers() + 70
2 Swift 0x000000010f93ddbf SignalHandler(int) + 287
3 libsystem_platform.dylib 0x00007fffb24aabba _sigtramp + 26
4 libsystem_platform.dylib 0x00007fbbfff49ae0 _sigtramp + 1302982464
5 Swift 0x000000010db79996 (anonymous namespace)::Traversal::visit(Swift::Expr*) + 118
6 Swift 0x000000010db7b880 (anonymous namespace)::Traversal::visitApplyExpr(Swift::ApplyExpr*) + 128
7 Swift 0x000000010db799eb (anonymous namespace)::Traversal::visit(Swift::Expr*) + 203
8 Swift 0x000000010db78f45 Swift::Expr::walk(Swift::ASTWalker&) + 53
9 Swift 0x000000010d6d2c87 walkForProfiling(Swift::AbstractFunctionDecl*, Swift::ASTWalker&) + 231
10 Swift 0x000000010d6d2719 Swift::Lowering::SILGenProfiling::assignRegionCounters(Swift::AbstractFunctionDecl*) + 553
11 Swift 0x000000010d6de348 (anonymous namespace)::SILGenType::emitType() + 952
12 Swift 0x000000010d6ddf1e Swift::Lowering::SILGenModule::visitNominalTypeDecl(Swift::NominalTypeDecl*) + 30
13 Swift 0x000000010d6625eb Swift::Lowering::SILGenModule::emitSourceFile(Swift::SourceFile*, unsigned int) + 731
14 Swift 0x000000010d663139 Swift::SILModule::constructSIL(Swift::ModuleDecl*, Swift::SILOptions&, Swift::FileUnit*, llvm::Optional<unsigned int>, bool, bool) + 793
15 Swift 0x000000010d6635a3 Swift::performSILGeneration(Swift::FileUnit&, Swift::SILOptions&, llvm::Optional<unsigned int>, bool) + 115
16 Swift 0x000000010d491c18 performCompile(Swift::CompilerInstance&, Swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&) + 12536
17 Swift 0x000000010d48dc79 frontend_main(llvm::ArrayRef<char const*>, char const*, void*) + 2777
18 Swift 0x000000010d489765 main + 1957
19 libdyld.dylib 0x00007fffb229e255 start + 1
J'ai également eu l'erreur de segmentation 11, lors de l'importation d'un framework créé par moi-même (ouais, je me sentais vraiment stupide).
Après avoir développé le cadre pendant des mois et l'intégré dans un projet principal associant Obj-C et Swift, l'importation dans Obj-C n'était plus un problème, mais dès que j'ai écrit le import MySwiftProject
dans Swift, l'enfer a éclaté. ample.
En résumé, le problème était que j'ai créé des méthodes personnalisées qui fournissent une typification pour NSNotifications
à l'aide de fermetures, par exemple:
func post(a : Int, b : String)
{
NSNotificationCenter.defaultCenter().postNotification("notification", object: nil, userInfo: ["a" : a, "b" : b])
}
func observe(block : (a : Int, b : String) -> ()) -> NSObjectProtocol
{
return NSNotificationCenter.defaultCenter().addObserverForName("notification", object: nil, queue: nil)
{
(n : NSNotification!) -> () in
// Unwrap the notification payload and provide types
if let a = n.userInfo?["a"] as? Int, let b = n.userInfo?["b"] as? String
{
block(a, b)
}
}
}
(En fait, le code ci-dessus je l'ai fait avec un modèle, mais c'est une autre histoire)
Le principal coupable? Cette:
func ... -> NSObjectProtocol
Apparemment, Apple peut utiliser NSObjectProtocol
dans la déclaration des méthodes de NSNotification
, mais lorsque je le fais, il introduit un Segfault 11
. Remplacer NSObjectProtocol
par AnyObject
a résolu le problème.
Malheureusement, cela pourrait ne pas résoudre votre problème, car segfault 11 est simplement un plantage générique du compilateur, mais vous pouvez prendre des mesures pour le résoudre. Cela m'a pris environ 2 heures, mais voici ce que j'ai fait:
Pour moi, c'est parce que j'ai deux paquets avec le même nom.
J'ai aussi lutté avec cela pendant un moment. J'ai mis mon code à niveau vers Swift 2 avec Xcode 7.2 et le problème était le suivant:
self.mainScrollView.documentView!.subviews.reverse() as! [MainSubView]
Ce que je devais changer pour:
(self.mainScrollView.documentView!.subviews as! [MainSubView]).reverse()
J'ai eu cette erreur en surchargeant une propriété dans une sous-classe et je n'ai pas répété exactement la déclaration de la propriété.
Classe de base:
var foo: String! {return nil}
Sous-classe:
override var foo: String {return "bar"} // missing the implicit unwrap operator
Pour moi, je bloquais le fil principal.
Ce que j'ai fait pour résoudre le problème avec GCD (voir ci-dessous)
dispatch_async(dispatch_get_main_queue(),
})
J'ai aussi rencontré ce problème ... évidemment, il s'agit d'une erreur générale ou de tris ... lorsque le xcode est confus ... dans mon cas, j'avais 3 vars auxquels j'attribuais des valeurs à partir d'un tableau .. ..mais je n'ai pas précisé le type de données dans chaque élément du tableau .... une fois que c'est fait, le problème a été résolu ....
Si vous utilisez plusieurs versions de XCode, cette erreur peut facilement se produire si vos chemins ont été modifiés (par exemple, vous avez téléchargé DMG sur le bureau, extrait, mais vous avez ensuite déplacé XCode vers des applications). Lisez attentivement l’erreur de segmentation 11 qui vous a été attribuée dans Xcode, il peut faire référence à votre ancien chemin qui est à l’origine de la défaillance de segmentation. Si tel est le cas, vous pouvez le résoudre de l'une des manières suivantes:
Une autre solution potentielle à ce problème:
La mise à niveau d’El Capitan vers Sierra et "l’installation de composants supplémentaires" lors du lancement de Xcode après cette mise à niveau, l’a corrigée pour la première fois.
Aucune de ces réponses n'a fonctionné pour moi mais j'ai trouvé mon problème. Cela concernait Gestion des erreurs (dans la section Désactivation de la propagation des erreurs). J'ai eu cette méthode:
func getSlider() throws -> UISlider {
... // code that could throw an error
return UISlider()
}
Le référençant comme ceci:
func anotherMethod() -> Float {
return try! getSlider().value
}
a donné l'erreur. Mais, en passant à cela, il est parti:
func anotherMethod() -> Float {
return (try! getSlider()).value
}
Dans mon cas, cela a été provoqué en essayant d'utiliser une fonction qui renvoyait un NSNumber en tant qu'argument dans lequel un Double était attendu. Je vous conseille de mélanger les objets Objective C avec les types de données Swift. Et comme beaucoup d’autres l’ont suggéré, commentez les lignes jusqu’à ce que vous identifiiez celle qui a causé l’erreur. (Même si vous créez d'autres erreurs, vous pouvez simplement les ignorer et voir ce qui fait disparaître l'erreur de segmentation.)
Dans mon cas, j'avais déclaré la propriété suivante dans l'une de mes sous-classes ViewControllers:
@property NSString * title
Je pense que cela était en conflit avec la propriété déjà existante title
dans ViewController
. J'ai renommé cette propriété en quelque chose d'autre et refactored son utilisation et l'erreur a disparu.
J'ai eu cette erreur lorsque j'essayais d'accéder à une propriété d'une instance de struct d'un singleton à partir d'une "portée statique" dans ce singleton (qui contient des constantes dans une énumération qui ne sont jamais instanciées).
J'ai rencontré ce bogue lors de la tentative de définition d'une nouvelle structure OptionSetType
dans Swift 2. Lorsque j'ai corrigé le type du paramètre init()
de Self.RawValue
à Int
le crash a cessé de se produire:
// bad:
// public init(rawValue: Self.RawValue) {
// self.rawValue = rawValue
// }
// good:
public init(rawValue: Int) {
self.rawValue = rawValue
}
Remarque juste pour ceux qui pourraient être dans la même situation que moi, car cela m'a pris tellement d'heures à résoudre ...
J'ai rencontré cette erreur après avoir utilisé la fonctionnalité Rechercher/Remplacer dans Xcode. Le problème est que certains caractères sont "remplacés" en raison de ma négligence (c'est-à-dire remplacer non seulement les parties pertinentes mais également les parties redondantes) et donc certaines variables deviennent non définies. Néanmoins, ces variables non définies n’ont pas été prises en compte dans la compilation (même après avoir effectué un clean
) et l’erreur segmentation du signal a été affichée à l’écran.
J'ai rencontré le même problème lors de mon premier essai avec Realm.io . La raison de l'erreur est que j'ai nommé ma cible Realm
et que cela a provoqué un conflit entre les espaces de noms. Le problème a été résolu après que j'ai changé mon nom de projet et mon nom de cible en quelque chose d'autre, comme expliqué dans ce problème .
Ma suggestion est de vérifier des conflits similaires dans les espaces de noms.
Des tuples nommés dans array dans une propriété let m'ont donné le problème de la faute de segmentation.
Pour moi, cela est apparu lorsque j’ai accidentellement appelé "super.init ()" dans un completionHandler d’une méthode appelée à partir de la méthode init class.
init() {
someFunction(argument, completionHandler: { (data) -> () in
super.init()
...
}
au lieu de
init() {
super.init()
someFunction(argument, completionHandler: { (data) -> () in
...
}
Il y aurait un nom de fichier mentionné après que la commande ait échoué à cause du signal: Erreur de segmentation: 11. Au moins dans mon cas c'était. Avec Swift, effectuez une mise à niveau vers la version 2.0 de certaines propriétés essentielles. En ne le traitant pas correctement, il a lancé cette erreur. Le traitement du puits facultatif a rejeté l’erreur. Dans mon cas c'était dû à ne pas manipuler:
if let scheduledNotifications = UIApplication.sharedApplication().scheduledLocalNotifications as [UILocalNotification]?{
}
Bonne chance!
En fait, j'ai un peu bousillé les entités Core Data lors du portage de Swift 2.0 à 1.2 (ne demandez pas pourquoi). J'ai supprimé toutes les classes d'entités et les ai recréées à nouveau. J'ai eu beaucoup de messages d'erreur à ce moment-là et quand je les ai corrigés, tout le projet a été construit avec succès.
c'est une solution simple
Appuyez simplement sur cmd + shift + k
mon problème est résolu pour nettoyer le projet
Dans mon cas, j'essayais d'étendre une classe CoreData avec une méthode d'assistance pouvant fonctionner sur toutes ses sous-classes:
extension ExampleCoreDataClass {
static func insert() -> Self {
...
Je n'ai reçu aucun avertissement à ce sujet, mais lorsque j'ai essayé de le compiler, la faute de segmentation est apparue.
Après avoir lutté pendant un moment, j'ai utilisé une extension de protocole à la place, ce qui a résolu l'erreur:
extension NSFetchRequestResult where Self: ExampleCoreDataClass {
static func insert() -> Self {
...
Dans mon cas, cela s'est passé dans Xcode 11 beta 3 avec Swift 5 et en utilisant SwiftUI.
My View a une propriété @State comme celle-ci:
@State private var normInfo: NormInfo?
le problème a été résolu en l'initialisant explicitement avec nil
.
J'ai couru dans ce tout en construisant pour les tests. Build to Run fonctionne bien. Xcode 7/Swift 2 n’a pas aimé la façon dont une variable a été initialisée. Ce code a fonctionné correctement dans Xcode 6.4. Voici la ligne qui a causé la faute seg:
var lineWidth: CGFloat = (UIScreen.mainScreen().scale == 1.0) ? 1.0 : 0.5
Le changer en ceci a résolu le problème:
var lineWidth: CGFloat {
return (UIScreen.mainScreen().scale == 1.0) ? 1.0 : 0.5
}
Je viens d'avoir ce problème et j'ai constaté que c'était parce que j'avais accidentellement laissé un override
sur une fonction que j'avais déplacée de la classe vers un protocole (la sous-classe ne remplaçait donc plus une fonction du parent).
J'ai eu cette erreur en obtenant une valeur de NSUserDefaults. Ce qui suit donne une erreur:
let arr = defaults.objectForKey("myArray")
Ce qui a corrigé l’erreur, c’est de convertir le type dans le type correct stocké dans NSUserDefaults. Ce qui suit ne donne pas d'erreur:
let arr = defaults.objectForKey("myArray") as! Array<String>
Cela m'est arrivé lorsqu'il y avait des fonctions imbriquées dans mon code et qu'une des fonctions imbriquées appelait une autre fonction imbriquée.
Je viens de supprimer le chaînage entre les fonctions imbriquées et ce problème a été résolu.
grâce à la réponse de @Ron B.
Dans mon cas, j'ai eu plusieurs exemples de méthodes prenant une fermeture avec une signature comme celle-ci ( remarque le tableau facultatif de dictionnaires ):
// 'results' being nil means "failure".
func queryItems(
completion:( (results:[[String:AnyObject]]?)->(Void) )
)
{
// (async operation...)
... que j'ai commencé à refactoriser:
// 'results' is NEVER nil (at most, empty). Pass any errors to the
// failure: closure instead.
func queryItems(
success:( (results:[[String:AnyObject]])->(Void) ),
failure:( (error:NSError) -> (Void) )
)
{
// (async operation...)
... mais n'a pas fini, donc certaines méthodes s'attendaient à une fermeture avec un argument optionnel et où être passé à un argument non optionnel (ou vice-versa?), et je suppose que le compilateur a perdu la trace.
Dans mon cas, Product Clean puis le redémarrage de Xcode ont résolu ce problème ...