Apple Platform (iOS 和 Mac)
程式代碼共用
對於沒有使用者介面元素的程式代碼元素而言,在iOS和Mac之間共用程式代碼的最佳方式仍然是使用 可攜式類別庫。
對於必須執行某些使用者介面工作但想要共用的程式代碼,您應該使用 共用專案 ,讓您將程式代碼放在單一項目中共用,並在參考時使用 Mac 和 iOS 進行編譯。
Unified API
適用於 iOS 和 Mac 的整合 API 專案會針對架構使用相同的命名空間,以便跨這兩個平臺使用相同的程式碼檔案,以便順暢地共用程式碼。 它也啟用 32 和 64 位組建。 整合 API 自 2015 年初以來一直是範本預設值,而且建議用於所有新專案, 只有 整合 API 專案可以提交至 App Store。
傳統 API
注意
傳統配置檔淘汰: 隨著 Xamarin.iOS 中的新增平臺,我們開始逐漸淘汰傳統配置檔的功能(monotouch.dll)。 例如,已移除非 NRC (new-ref-count) 選項。 NRC 一律針對所有統一應用程式啟用(即非 NRC 從未選項),而且沒有任何已知問題。 未來的版本將會移除使用 Boehm 作為垃圾收集行程的選項。 這也是統一應用程式永遠無法使用的選項。 在 Xamarin.iOS 10.0 版本中,已排定於 2016 年秋季完整移除傳統支援。
原始的 (非整合) Xamarin.iOS 和 Xamarin.Mac API 使得程式代碼共用更加困難,因為原生架構具有 MonoTouch.
或 MonoMac.
命名空間前置詞。 我們提供了一些空白命名空間,可讓開發人員共用程序代碼,方法是在相同檔案上新增 using
參考MonoMac和MonoTouch命名空間的語句,但這有點醜陋。 傳統 API 應該只會繼續用於內部散發的舊版應用程式(建議升級至整合 API)。
從傳統更新至整合 API
有詳細的指示可從傳統版更新至整合 API 的任何應用程式。
系結 Objective-C 連結庫
Xamarin 可讓您使用系結將原生連結庫帶入您的應用程式。 本節說明:
- 系結的運作方式
- 如何手動建置系結專案,讓您將程式代碼帶入 Objective-C Xamarin,以及
- 如何使用 Objective Sharpie 工具來協助自動化程式。
原生參考
Mac/iOS 原生類型
為了從 C# 和 F# 透明地支援 32 和 64 位程式代碼,我們引進了新的數據類型。 在這裡了解它們。
建置32和64位應用程式
您需要知道才能支援 32 和 64 位應用程式。
在跨平台應用程式中使用原生型別
本文涵蓋在跨平臺應用程式中使用新的 iOS 整合 API 原生類型 (nint
、 nuint
、 nfloat
),其中程式代碼會與 Android 或 Windows 電話 OS 等非 iOS 裝置共用。
它提供何時應使用原生型別的見解,並提供數個可能的解決方案,讓新類型必須搭配跨平台程序代碼使用。
HttpClient 堆疊和 SSL/TLS 實作選擇器
新的 HttpClient Stack 選取器可控制 Xamarin.iOS、Xamarin.tvOS 和 Xamarin.Mac 應用程式中要使用的 HttpClient 實作。 您現在可以切換至使用 iOS、tvOS 或 OS X 原生傳輸的實作(NSUrlSession
或 CFNetwork
視 OS 而定)。
SSL(安全套接字層)及其後續版本 TLS(傳輸層安全性),透過提供 HTTP 和其他網路連線 System.Net.Security.SslStream
的支援。 新的 SSL/TLS 實作建置選項會在 Mono 自己的 TLS 堆疊之間切換,以及由 Mac 和 iOS 中 Apple 的 TLS 堆疊所提供的選項。