Swift 4.0遷移及iPhone X適配初體驗

iPhone X發(fā)布了,價格感人,但總有土豪會買。有人用就得適配,個人感覺,齊劉海不丑。

美嗎?

下載Xcode 9

? ? 蘋果開發(fā)者網(wǎng)站可以下載Xcode9 GM版本了,如果要保留Xcode8,需要先把Xcode.app修改為Xcode8.app,然后再安裝Xcode9,這樣就可以同時擁有兩個版本了。

Swift 4.0 遷移

? ? 首先,第三方庫要支持Swift 4.0。

? ? 對于業(yè)務(wù)代碼,選擇菜單“Edit > Convert > To Current Swift Syntax...”,竟然沒有當(dāng)前項目的選項,只能選擇Test項目。作罷,直接編譯,有錯就改吧?!?/p>

【錯誤一】Argument of '#selector' refers to instance method 'XXXXXXX' that is not exposed to Objective-C

【解決方法】聰明的Xcode也給出了提示——Add '@objc' to expose this instance method to Objective-C,直接點擊fix按鈕,Xcode自動修改問題?!?/p>

【錯誤二】'NSFontAttributeName' has been renamed to 'NSAttributedStringKey.font'

【解決方法】一些類被重新命名,Xcode提示——Replace 'NSFontAttributeName' with 'NSAttributedStringKey.font',直接點擊fix按鈕,一直點、點、點......手殘了......————————————————————————————————————

【錯誤三】Cannot convert value of type 'NSAttributedString.DocumentAttributeKey' to expected dictionary key type 'NSAttributedString.DocumentReadingOptionKey'

錯誤代碼

【解決方法】將[NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],改為[NSAttributedString.DocumentReadingOptionKey.documentType: NSAttributedString.DocumentType.html]———————————————————————————————————

【錯誤四】'priority' produces 'ConstraintMakerFinalizable', not the expected contextual result type 'Void'

錯誤代碼

【解決方法】將UILayoutPriorityDefaultHigh,修改為UILayoutPriority.defaultHigh.rawValue。同理,根據(jù)錯誤替換其他的枚舉項,包括UILayoutPriority.required.rawValue、UILayoutPriority.defaultLow.rawValue?!?/p>

【錯誤五】其實是個警告:'substring(from:)' is deprecated: Please use String slicing subscript with a 'partial range from' operator.

【解決方法】substring被廢棄,使用下標(biāo)來截取字符串。

例如rgba.substring(from: index)改為String(rgba[index...])?!?/p>

iPhone X適配

? ? ? 改完所有錯誤,編譯運行,齊劉海迎面而來,竟然適配的如此完美。明顯的問題只發(fā)現(xiàn)一處,左上角的返回按鈕,點擊無響應(yīng)。

左上角按鈕不響應(yīng)

? ? ? 將按鈕往下調(diào)整30個點,點擊可以正常響應(yīng)了。由此推斷,應(yīng)該是左上角的太陽穴位置,不響應(yīng)手勢了。

? ? ? iPhone X,余生請多指教!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文地址:swift4.0 適配 一、前言 在我們的工程中處于swift和OC混編的狀態(tài),使用swift已經(jīng)有一年...
    默默_David閱讀 2,047評論 0 3
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,429評論 4 61
  • 加班到晚上九點多,她回到了別墅,進(jìn)門口后的大廳沙發(fā)上,不滿一歲的兒子光著小身板獨自一個人坐在大廳的沙發(fā)上,搖搖晃...
    一盆清水閱讀 967評論 0 0
  • 近年來,越來越多的經(jīng)典組合重現(xiàn)在眾人的視線之中,今天我們就來重溫一下那些年陪我們走過的經(jīng)典吧! 近日,鐘鎮(zhèn)濤曬出一...
    傳媒矩陣閱讀 588評論 0 0
  • 1. 在 Xcode 里打開 Images.xcassets 2. 創(chuàng)建一個新的圖片集合 - New Image ...
    Justin_W閱讀 1,529評論 0 1

友情鏈接更多精彩內(nèi)容