<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Xcode 13.3 Beta 新特性及 Swift 新特性盤點(diǎn)

          共 3458字,需瀏覽 7分鐘

           ·

          2022-02-15 08:55

          Xcode 13.3 目前已發(fā)布了兩個(gè) beta 版本,beta 2 于本月 8 號(hào)發(fā)布。不過 beta 2 主要是對(duì)一些問題的修復(fù),新特性不多。Swift 在這個(gè)版本中也新增了幾個(gè)特性,以下是對(duì) Xcode 13.3 中新特性的提取。

          構(gòu)建系統(tǒng)

          構(gòu)建系統(tǒng)和 Swift 編譯器有一種新模式,可以更好地利用可用內(nèi)核,從而加快 Swift 項(xiàng)目的構(gòu)建速度。該模式是可選的,您可以使用以下用戶默認(rèn)值全局啟用它:


          defaults write com.apple.dt.XCBuild EnableSwiftBuildSystemIntegration 1

          調(diào)試

          在關(guān)閉優(yōu)化的情況下進(jìn)行編譯時(shí),Swift 編譯器和 Clang 不再消除 ARM64 目標(biāo)上的冗余分支指令。這通過啟用更多斷點(diǎn)位置來提高可調(diào)試性,但在使用 -Onone 編譯時(shí)會(huì)產(chǎn)生稍大的二進(jìn)制文件。

          文檔

          Xcode 現(xiàn)在可以在可執(zhí)行目標(biāo)(如應(yīng)用程序和命令行工具)中從您的 Swift 代碼構(gòu)建文檔。

          Instruments

          • 提高了 Instruments、Xcode 的內(nèi)存圖調(diào)試器和泄漏命令行中泄漏掃描的準(zhǔn)確性。系統(tǒng)現(xiàn)在可以更準(zhǔn)確地掃描多負(fù)載枚舉案例中的對(duì)象引用,從而實(shí)現(xiàn)更精確的內(nèi)存泄漏分析以及強(qiáng)、弱和無主引用類型的識(shí)別。

          • xctrace 現(xiàn)在能夠使用用戶指定的 dSYM 符號(hào)化以前捕獲的跟蹤文件。有關(guān)詳細(xì)信息和語法示例,請(qǐng)參閱 man xctrace 或 xctrace 幫助符號(hào)。

          • Instruments 現(xiàn)在對(duì)應(yīng)用程序啟動(dòng)的影響較小,使用 App Launch 模板收集的指標(biāo)更能代表其實(shí)際行為。?

          • atos 現(xiàn)在允許在提供 -offset 標(biāo)志或未指定加載地址或幻燈片的情況下以二進(jìn)制偏移量的形式表示地址。

          例如:


          atos -arch arm64 -o Example.app/Contents/MacOS/Example 0x00fdae30


          • Instruments 從跟蹤文檔中刪除了控制臺(tái)視圖。要在跟蹤期間查看輸出和錯(cuò)誤,請(qǐng)從庫中添加 stdout/stderr 工具。新的 stdout/stderr 工具提高了性能和可靠性,但默認(rèn)情況下不再處于活動(dòng)狀態(tài)。

          • Instruments 現(xiàn)在在工具欄彈出窗口中顯示運(yùn)行問題,而不是在詳細(xì)信息區(qū)域中顯示它們。此外,運(yùn)行問題也會(huì)出現(xiàn)在時(shí)間線上方的標(biāo)尺中,以指示它們發(fā)生的時(shí)間。

          Organizer

          如果您有 10 個(gè)或更少的應(yīng)用程序并且您之前沒有訂閱任何應(yīng)用程序,Xcode 現(xiàn)在會(huì)自動(dòng)向您發(fā)送應(yīng)用程序的 Smart Insights 通知。要激活此功能,請(qǐng)單擊“回歸”項(xiàng)目或管理器中的任何“度量”項(xiàng)目。

          源代碼編輯器

          • 代碼完成現(xiàn)在建議 if case .. 的枚舉實(shí)例

          • 完成不可訪問的符號(hào)時(shí),代碼完成不再自動(dòng)導(dǎo)入模塊。

          StoreKit

          • 在 StoreKit 配置文件中,您現(xiàn)在可以復(fù)制、粘貼和復(fù)制產(chǎn)品、訂閱組、訂閱優(yōu)惠和本地化。

          • 在 Xcode 中使用 StoreKit 測(cè)試時(shí),您現(xiàn)在可以在 StoreKit 配置文件中為代碼配置報(bào)價(jià)。在運(yùn)行 iOS 15.4 或更高版本的設(shè)備上進(jìn)行測(cè)試時(shí),您可以兌換這些優(yōu)惠。

          • 您現(xiàn)在可以在 StoreKit 配置文件中切換一種新模式,稱為續(xù)訂時(shí)計(jì)費(fèi)重試。當(dāng)訂閱設(shè)置為續(xù)訂時(shí),此模式會(huì)導(dǎo)致訂閱進(jìn)入模擬的計(jì)費(fèi)重試期。此模式適用于運(yùn)行 iOS 15.4、macOS Monterey 12.3、watchOS 8.5 或 tvOS 15.4 的設(shè)備和模擬器。

          • 您現(xiàn)在可以在運(yùn)行 iOS 15.4、macOS Monterey 12.3、watchOS 8.5 和 tvOS 15.4 的設(shè)備或模擬器上測(cè)試訂閱價(jià)格上漲。您可以使用事務(wù)管理器測(cè)試請(qǐng)求和響應(yīng)訂閱交易的漲價(jià)同意。在運(yùn)行 iOS 15.4 或更高版本的設(shè)備上測(cè)試訂閱價(jià)格上漲時(shí),每個(gè)漲價(jià)同意請(qǐng)求都會(huì)模擬調(diào)用支付隊(duì)列委托方法 paymentQueueShouldShowPriceConsent(_:)。

          Swift

          • 當(dāng) non-Sendable 類型跨參與者或任務(wù)邊界傳遞時(shí),Swift 現(xiàn)在會(huì)產(chǎn)生警告以指示潛在的數(shù)據(jù)競(jìng)爭(zhēng)。?

          例如:


          class MyCounter {
          var value = 0
          }

          func f() -> MyCounter {
          let counter = MyCounter()
          Task {
          counter.value += 1 // warning: capture of non-Sendable type 'MyCounter'
          }
          return counter
          }


          • 您現(xiàn)在可以使用新的 #unavailable 關(guān)鍵字編寫倒置的可用性條件。

          例如:


          if #unavailable(iOS 15.0) {
          // Old functionality
          } else {
          // iOS 15 functionality
          }


          • 您現(xiàn)在可以在類型表達(dá)式和注釋中包含類型占位符。類型占位符指示編譯器根據(jù)通常的類型推斷規(guī)則為該位置設(shè)置類型。要使用類型占位符,請(qǐng)輸入下劃線 (“_”) 而不是類型名稱。

          例如:


          // This is OK--the compiler can infer the key type as `Int`.
          let dict: [_: String] = [0: "zero", 1: "one", 2: "two”]


          • Swift 編譯器現(xiàn)在在直接調(diào)用從 C 導(dǎo)入的函數(shù)時(shí)接受有限的指針類型不匹配,只要 C 語言允許這些指針類型使用別名。因此,任何 Swift Unsafe[Mutable]Pointer

            ?或 Unsafe[Mutable]RawPointer 都可以傳遞給聲明為 [signed|unsigned] char * 的 C 函數(shù)參數(shù)。Swift Unsafe[Mutable]Pointer?也可以傳遞給具有整數(shù)類型的 C 函數(shù)參數(shù),該整數(shù)類型與 T 的區(qū)別僅在于其符號(hào)性。(SE-0324, 87735396)

          例如,在導(dǎo)入 C 函數(shù)聲明后:

          long long decode_int64(const char *ptr_to_int64);


          Swift 現(xiàn)在可以直接將原始指針作為函數(shù)參數(shù)傳遞。

          例如:

          func decodeAsInt64(data: Data) -> Int64 {
          data.withUnsafeBytes { (bytes: UnsafeRawBufferPointer) in
          decode_int64(bytes.baseAddress!)
          }
          }


          • 現(xiàn)在可以在嵌套類型的父級(jí)中正確檢測(cè)到協(xié)議成員的類型簽名中對(duì)自我或所謂的 Self requirements 的引用。因此,您不能在協(xié)議上聲明這些協(xié)議成員。

          例如:

          struct Outer {
          struct Inner {}
          }

          protocol P {}
          extension P {
          func method(arg: Outer<Self>.Inner) {}
          }

          func test(p: P) {
          // error: 'method' has a 'Self' requirement and can’t be used on a value of
          // protocol type (use a generic constraint instead).
          _ = p.method
          }

          Swift 包管理器

          • Swift 包現(xiàn)在支持 SE-0303 和 SE-0325 中定義的構(gòu)建工具插件。這允許包定義插件,這些插件可以指定應(yīng)該在構(gòu)建操作期間運(yùn)行的工具,例如生成源代碼。swift 包和 Xcode 對(duì)包的支持都支持這一點(diǎn)。

          • swift package 命令現(xiàn)在支持 SE-0332 中定義的命令插件。這允許 Packages 定義可以使用 swift package 命令行調(diào)用的命令,以對(duì)包執(zhí)行自定義操作。

          測(cè)試(Beta 2)

          • XCTest 現(xiàn)在支持在 UI 測(cè)試期間重置“本地網(wǎng)絡(luò)”受保護(hù)資源的授權(quán)狀態(tài)。

          • 重復(fù)運(yùn)行測(cè)試時(shí),測(cè)試運(yùn)行器現(xiàn)在將當(dāng)前迭代編號(hào)打印到控制臺(tái)。


          瀏覽 29
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲AV无码久久精品色无码蜜桃 | 人日人免费视频 | 色五月婷婷综合 | 99精品视频免费观看 | 手机观看AV|