我的代碼中有一個類(姑且稱之爲myRefLib)從UIReferenceLibraryViewController(UIKit框架的一部分)繼承了這是一類是僅在iOS中使用5及以上。我想要有一個iOS 3.2的部署目標。從弱鏈接的iOS類或類繼承不是在部署目標的iOS版本
如果我只是創建一個UIReferenceLibraryViewController的實例,我理解我可以使用基本的SDK 5,然後在運行包含它的任何代碼之前測試該類是否與[UIReferenceLibraryViewController類]一起存在。但是如果我從班上繼承,我該怎麼做呢?
的問題是,我必須#包括對我的代碼將使用它的部分繼承類myRefLib - 但有沒有辦法做到有條件在運行時。另外,也沒有辦法從myRefLib中的UIReferenceLibraryViewController有條件地繼承。我還想讓myRefLib的一個實例成爲另一個類的屬性 - 再次,我如何有條件地執行該運行時?
任何幫助非常讚賞...
d
謝謝你。如果沒有解決#include問題,我提出條件繼承的唯一原因是作爲替代。您的帖子也引導我到這裏,進入一些細節:http://www.marco.org/2010/11/22/supporting-older-versions-of-ios-while-using-new-apis ...顯示可以繼承,包含並指向缺少的類,只要滿足某些條件並提供您未實例化即可。 – delany
噢,也類方法[UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:STR]返回nil而不如果UIReferenceLibraryViewController類不存在崩潰。因此,對於這個特定的類,如果您在實例化之前已經檢查了存在的單詞(並且滿足上述條件),則看起來不需要爲舊版本更改任何代碼。雖然我認爲dictionaryHasDefinitionForTerm的行爲不能保證在未來的iOS版本中繼續 - 所以最好也添加一個[UIReferenceLibraryViewController類]檢查。 – delany