国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - IOS - 支持Xcode10和適配iPhone XS Max、iPhone XR的方法

支持Xcode10和適配iPhone XS Max、iPhone XR的方法

2021-05-13 17:19Mister_H IOS

這篇文章主要介紹了支持Xcode10和適配iPhone XS Max、iPhone XR的方法,文中通過示例代碼以及圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

本文介紹了支持xcode10和適配iphone xs max、iphone xr的方法,分享給大家,具體如下,

支持Xcode10和適配iPhone XS Max、iPhone XR的方法

目前我們項目已做了xcode10(swift4.0)和新機型的適配,總結(jié)一下遇到的問題和修改的內(nèi)容,希望幫助到其他人,如果您有不同的看法或遺漏,歡迎指出!

1.第三方庫編譯報錯

如果項目里用到了mixpanel-swift和swiftlint,這兩個在xcode10上會報錯,目前作者已提交新版本分別是2.4.5和0.27.0,更新后即可解決報錯。

2.library not found for - lstdc++.6.0.9

pod工程編譯通過后會進行主工程的編譯,如果依賴了libstdc++.tbd和libstdc++.6.0.9.tbd,就會報這個error,原因是蘋果在xcode10和ios12中移除了libstdc++這個庫,由libc++這個庫取而代之,蘋果的解釋是libstdc++已經(jīng)標記為廢棄有5年了,建議大家使用經(jīng)過了llvm優(yōu)化過并且全面支持c++11的libc++庫。

臨時的解決方法就是把libstdc++.6.0.9.tbd這個文件導入到xcode10中,分別放到以下目錄 /applications/xcode.app/contents/developer/platforms/iphoneos.platform/developer/sdks/iphoneos.sdk/usr/lib/   和 /applications/xcode.app/contents/developer/platforms/iphonesimulator.platform/developer/sdks/iphonesimulator.sdk/usr/lib/  這時編譯可以通過。

但這只是臨時的解決方案,如果你自己的業(yè)務(wù)模塊使用了libstdc++,那么就把模塊代碼重新調(diào)整為依賴libc++,然后重新檢查是否存在問題,重新編譯。如果你引用的第三方廠商提供的sdk中依賴了libstdc++,那么抓緊聯(lián)系廠商,要求版本升級。

3.enum case '...' not found in type '...'

解決好上面兩個報錯,編譯程序時還會顯示這個error,具體場景如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
posvisitquestiontype: string {
  case text
  case textarea = "text_area"
  case dropdownlist = "drop_down_list"
  case radiobutton = "radio_button"
}
let type: posvisitquestiontype!
...
switch type {
case .text, .textarea:
  errortext = nslocalizedstring("please enter the following options", comment: "")
case .dropdownlist, .radiobutton:
  errortext = nslocalizedstring("click the right button to get current location", comment: "")
default:
  break
}

xcode10建議每個case 情況下加“?”

支持Xcode10和適配iPhone XS Max、iPhone XR的方法

原因可能是 type是可選的,所以每個case情況要與type類型保持一致,所以提示加 “?”,可能是xcode10編譯器更新的原因。

修改的方法是如果確定type會被賦值,那在定義的時候就把“!”去掉,如果不確定type是否有值就按照xcode提示修改。

4.適配iphone xs max、iphone xr

我們項目在獲取機型等信息用的是devicekit這個第三方庫,所以也需要更新一下才能獲取到新機型的信息,最新版是1.8.1。在最新版有這樣一個變量

?
1
2
3
4
/// all face id capable devices
  static public var allfaceidcapabledevices: [device] {
   return [.iphonex, .iphonexs, .iphonexsmax, .iphonexr]
  }

由于iphone x、iphone xs、iphone xs max、iphone xr這些機型的navigationbar高度以及tabbar高度都一致,所以可以用allfaceidcapabledevices是否包含當前設(shè)備,來判斷當前設(shè)備是否有“齊劉海”。

示例:

?
1
2
3
4
5
6
7
8
9
static let faceiddevicearray = device.allfaceidcapabledevices
 
static let navigationheight: cgfloat = {
    if faceiddevicearray.contains(currentdevice) {
      return faceiddevicenavheight
    } else {
      return ordinarydevicenavheight
    }
  }()

同時devicekit中也提供這樣一個方法,運行模擬器的時候調(diào)用,也會返回真實的設(shè)備名稱

?
1
2
3
4
5
6
7
8
/// get the real device from a device. if the device is a an iphone8plus simulator this function returns .iphone8plus (the real device).
  /// if the parameter is a real device, this function returns just that passed parameter.
  ///
  /// - parameter device: a device.
  ///
  /// - returns: the underlying device if the `device` is a `simulator`,
  /// otherwise return the `device`.
  public static func realdevice(from device: devicekit.device) -> devicekit.device

示例:

?
1
2
3
4
static let currentdevice = device.realdevice(from: device())
if currentdevice == .iphonex {}
// 取代以下寫法
if device() == .iphonex || device() == .simulator(.iphonex) {}

最后別忘了再切兩張啟動圖,因為iphone xs和尺寸和iphone x是一樣的,所以iphone xs可以忽略

iphone xr:828px x 1792px

iphone xs max: 1242px x 2688px

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。

原文鏈接:https://www.jianshu.com/p/24920e577e07

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产亚洲一区二区三区在线观看 | 久久精品国产精品青草 | 日本视频二区 | 欧美成人精品一区二区男人看 | 国产欧美在线观看 | 久久99精品久久久久久噜噜 | 国产精品永久免费视频 | 国产96在线视频 | 黄在线免费观看 | 国产主播福利 | 午夜电影网站 | 中文字幕一区二区三区在线视频 | 动漫一区二区三区 | 日韩在线观看 | 91精品入口蜜桃 | 久久一日本道色综合久久 | 一区二区三区在线看 | 91在线精品一区二区 | 国产一区二区av | 国产在线视频网站 | 视频一区二区三区在线观看 | 成人精品动漫一区二区三区 | 欧美日韩在线视频观看 | 午夜社区 | 精品精品 | 综合精品 | 亚洲免费国产视频 | 国产高清一区二区 | 精品综合| 日韩视频在线观看一区 | 欧美一区二区免费 | 九九热这里都是精品 | 成人久久精品 | 91中文字幕在线观看 | 国产午夜精品久久久 | 亚洲综合婷婷 | 国产精品美女久久久久久久久久久 | 精品久久国产 | 最新国产视频 | 国产精品久久久久久av下载网址 | 2015成人永久免费视频 |