Autolayout issue Xcode 8 beta 6: _SwiftValue nsli_superitem

I’m converting my Objective C and Swift 2.x code to Swift 3 and I started getting this strange error:

[_SwiftValue nsli_superitem]: unrecognized selector sent to instance 0x610000056740

This occurred in my NSLayoutConstraint.constraints() methods:

[constraintString1, constraintString2].forEach {

    let constraint = NSLayoutConstraint.constraints(withVisualFormat: $0, options: [], metrics: metrics, views: viewDictionary)

   NSLayoutConstraint.activate(constraint)

}

Currently, I used inferred types on my viewDictionary and metrics variables:

let viewDictionary = [
"answerView1": self.answerView1,
"answerView2": self.answerView2,
"answerView3": self.answerView3,
"answerView4": self.answerView4,
]

let metrics = [:]

The workaround seems to be to provide explicit types on these two variables:

let viewDictionary:[String:UIView] = [
"answerView1": self.answerView1,
"answerView2": self.answerView2,
"answerView3": self.answerView3,
"answerView4": self.answerView4,
]

let metrics:[String:AnyObject] = [:]

There’s probably a deeper issue here but at this point, I’m simply glad to have my app running again. I’ll post more if I figure out any additional details.

Advertisements

2 thoughts on “Autolayout issue Xcode 8 beta 6: _SwiftValue nsli_superitem”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s