2017-09-09 1 views
0

Je fais des contraintes avec le langage visuel, mais chaque fois que j'essaie de les ajouter cela provoque une erreur.iOS Contstraints Cause SIGABRT Erreur

class TimerViewController : UIViewController{ 
    let timer = TimerView() 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.view.backgroundColor = .white 
     self.view.addSubview(timer) 
     self.createContraints() 
    } 

    func createContraints(){ 
     self.timer.translatesAutoresizingMaskIntoConstraints = false 
     let horizontalConstraints = 
NSLayoutConstraint.constraints(withVisualFormat: "H:|[timer]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["timer" : timer]) 
     let verticleContraints = 
NSLayoutConstraint.constraints(withVisualFormat: "V:|==[timer]==|", options: NSLayoutFormatOptions(), metrics: nil, views: ["timer" : timer]) 
     self.view.addConstraints(horizontalConstraints) 
     self.view.addConstraints(verticleContraints) 
    } 
} 
+0

Y a-t-il une raison pour que vous le fassiez dans le code? Dans la plupart des cas, il est beaucoup plus simple de faire ce genre de chose dans le constructeur d'interface et est moins sujet aux erreurs. – Adrian

+0

Je suis d'accord avec @Brandon, vous n'avez pas besoin d'ajouter == ici, si vous voyez votre console, vous verrez une erreur comme ceci 'Termination app due à l'exception uncaught 'NSInvalidArgumentException', raison: 'Impossible d'analyser le format de contrainte: une vue V: | == [v0] == | ^ ' ', qui vous indique quelle est la cause de votre problème. – 3stud1ant3

Répondre

2

Xcode vous donne l'erreur:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse constraint format: 
Expected a view 
V:|==[timer]==| 
    ^' 

donc enlever le == et cela fonctionnera.

+0

Même si je supprime le ==, il se bloque toujours – Snifferdog

+0

@Snifferdog ce n'est pas le cas. J'ai couru le même code sans les deux ==. Lisez vos erreurs dans la console Xcode/log. – Brandon

+0

Oui, je pensais l'avoir essayé sans cette contrainte, mais ça a juste marché. Je vous remercie. – Snifferdog