更新了Xcode11.0之后莫名其妙項(xiàng)目各種crash
①锭吨、if let解包c(diǎn)rash
if let open = open {
self.updateHeader(with: open)
}
先是這種if let 解包的寫法是官方推薦的寫法蠢莺,但是昨天更新 xcode11 之后就一直報(bào)Exec_Bad_Access僵尸對(duì)象 撓頭表示不解,但是重新命名變量open就沒事了 比如
if let openNew = open {
self.updateHeader(with: openNew)
}
最奇怪的是改完跑一遍沒問題零如,再撤回用原來的代碼跑一遍也沒問題了躏将,具體原因無從考證
②锄弱、關(guān)閉Dark模式(暗黑)
項(xiàng)目暫時(shí)不需要Dark模式,可以打開info.plist文件添加如下鍵值
<key>UIUserInterfaceStyle</key>
<string>Light</string>
③祸憋、UITextField的leftView寬度問題
也是更新之后跑項(xiàng)目發(fā)現(xiàn)文本框的leftView設(shè)置了frame会宪,但是顯示左側(cè)視圖的寬度是自適應(yīng)寬度,如圖
試了下用snapkit可以完美解決
let leftView = UILabel(text: leftTitle,
textColor: UIColor.deep,
textAlignment: .left,
font: UIFont.scaled(15.0))
leftView.snp.makeConstraints { (make) in
make.width.equalTo(Device.scaled(100.0))
make.height.equalTo(30.0)
}
最后還有一個(gè)就是私有KVC的問題蚯窥,比如給 UITextField 的 Placeholder 設(shè)置顏色字體等掸鹅,現(xiàn)在已不能通過KVC的形式去設(shè)置了
searchField.setValue(UIColor.light, forKeyPath: "_placeholderLabel.textColor")
但是可以用searchField.attributedPlaceholder設(shè)置富文本的方式 ok 記錄完畢~!
searchField.attributedPlaceholder = NSAttributedString(string: "請(qǐng)輸入", attributes:
[NSAttributedStringKey.foregroundColor : UIColor.light])