2016-09-21 80 views
8

在swift 3轉換後,我得到這個錯誤。swift 3錯誤[_SwiftValue nsli_superitem]

'NSInvalidArgumentException' 的,理由是: ' - [_ SwiftValue nsli_superitem]:無法識別的選擇發送到實例0x600000a54820'

有問題的代碼是這樣的,用它來很好地工作SWIFT 2:

let views = ["newView": userLabel] 
let widthConstraints = NSLayoutConstraint.constraints(withVisualFormat: "H:[newView(0)]", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: views) 
userMainLabel.addConstraints(widthConstraints) 

回答

19

這是與SWIFT 3,凡字典被視爲一個問題[字符串:UIView的?]

的解決辦法是分配TY PE作爲不可選

let views: [String: UIView] = ["newView": userLabel] 
+0

在我的情況下,我的視圖被聲明爲可選的,但似乎在Swift 2中編譯器隱式解開了那個。我喜歡這個。更可預測。謹慎選擇字典中的可選項!呵呵 – SeizeTheDay

+0

謝謝。我想了一天之前浪費了:( – Storix