[英]Supporting older versions of iOS
我正在開發一個新的iOS應用,該應用應該支持開箱即用的新拖放功能(iOS 11)。 但是我希望它也可以在較舊的(iOS 10)設備上執行。 據我了解,將Deployment Target
設置為iOS 11將阻止該應用程序安裝在較舊的設備上。 但是,將其設置為iOS 10.3將導致出現錯誤,指出“拖放”僅在iOS 11.0或更高版本上可用。
我的問題是:是否可以通過提供兩個版本(一個帶有DnD,一個不帶舊版本)或告訴xcode忽略舊版本的DnD行來使該應用程序可用於較舊的設備? 還是這僅僅是不可能?
感謝所有幫助!
將所有委托符合性移至擴展名,然后將@available
屬性添加到擴展名。 例如:
@available(iOS 11.0, *)
extension DragBoardViewController : UIDragInteractionDelegate { ... }
如果您將這些一致性寫為擴展名,Xcode 9將自動為您提供修復程序,以添加@available
屬性。
請記住,您絕對可以在iOS 10中定義這些委托方法。 他們只是不會被叫。 @available
是防止代碼的其他部分在不首先將其包裝在#available
檢查中的情況下調用它。
探索此問題的一種好方法是下載Apple的示例代碼 ,然后將部署目標設置為10.0。 您會看到許多修補程序彈出窗口,以幫助您完成該過程,並在自己的代碼中顯示如何進行修復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.