NSLayoutConstraintをIBOutletで紐づける場合、普通はこうなると思います。
@IBOutlet fileprivate weak var constraint: NSLayoutConstraint!
しかし、このconstraintを非activeにするとマズいことが起きたりします。
constraint.isActive = false
constraint.constant = 10 /// 強制終了する
どうも非activeになったタイミングでretainCountがなくなり、解放されてしまうようです。
そのため、この場合に限ってはweakは付けないのが正解なのかな、と思っています。
本当の正解をご存知の方がいらっしゃいましたらコメントいただけますと幸いです。。