[英]Is it possible to conditionally use iOS 6 features but still support older devices?
有時,在新版iOS中添加了誘人使用的功能,但您不希望僅由於一項次要功能就阻止舊設備上的用戶使用該應用。
我剛剛將UIRefreshControl
添加到了iOS 6中添加的應用程序中。我不太在意使用第三方解決方案(其中有一個數字),我只是不想調用那些如果我在較舊的設備上運行,請進行設置。 我懷疑這是一種靜態語言,這是不可能的,但是我想我要問一下是否有辦法實現這一目標。
顯然,如果我只是共享代碼,則可以使用預處理器宏來執行此操作,但是我需要構建該應用程序才能在iOS 5.1 + iOS 6.0上執行。
這完全有可能,只需檢查是否有可用的班級即可:
if ([UIRefreshControl class]) {
// the UIRefreshControl is available.
}
與現有類上的新方法相同:
if ([self.someLabel respondsToSelector:@selector(setAttributedText:)]) {
// The label support attributed strings
}
正如您可能會想到的那樣,Objective-c並不是一個靜態的,只需確保您弱鏈接了iOS早期版本中不可用的任何框架。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.