簡體   English   中英

是否可以有條件地使用iOS 6功能,但仍支持較舊的設備?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM