I am trying to reassign the NSLayoutConstraint link.
class ViewController: UIViewController { @IBOutlet weak var myConstraint: NSLayoutConstraint! override func viewDidLoad() { super.viewDidLoad() exchangeConstraint(&myConstraint) } } extension UIViewController { func exchangeConstraint(_ constraint: inout NSLayoutConstraint) { let spacing = constraint.constant view.removeConstraint(constraint) constraint = view.topAnchor.constraint(equalTo: anotherView.topAnchor, constant: spacing) view.addConstraint(constraint) } }
But here he gives me an error:
exchangeConstraint(&myConstraint) -------------------^ Cannot pass immutable value of type 'NSLayoutConstraint' as inout argument
I don’t understand why it says an immutable value, whereas a constraint is declared as a variable, not a constant.
source share