2012-01-06 29 views
1

我想使用iOS5的一些功能,但仍然建立iOS4的可比較,但我有一個問題。通常我會使用respondsToSelector:,但我不完全確定這是否是正確的方法,或者是我應該插入什麼。檢查CIFilter是否可用在當前的iOS

我想使用CIFilter,據我所知,它僅在iOS5 +中可用,如何檢查這是否在當前安裝的操作系統中可用?

謝謝先進。

回答

4

嘗試使用NSClassFromString()來確定該類是否存在於當前版本的iOS中。

Class filterClass = NSClassFromString(@"CIFilter"); 

if (!filterClass) 
{ 
    // Must be less than 5.0. CIFilter doesn't exist. 
} 
else 
{ 
    // CIFilter is available 
    CIFilter *filter = [filterClass filterWithName:@"somefilter"]; 
} 
+0

嗨,馬克 這看起來像它的工作,雖然我試圖運行的iOS 4.3模擬器中的應用程序,我碰到下面的錯誤 「dyld的: Library not loaded:/System/Library/Frameworks/CoreImage.framework/CoreImage 引用自:/ Users/JohnSlater/Library/Application Support/iPhone Simulator/4.3.2/Applications/C964F4D5-FAD1-4348-895D-551FBD923915/SXIWalls .app/SXIWalls 原因是:image not found「 我開始思考的是因爲CoreImage框架完全不適用於iOS4。我將如何解決這個錯誤? – slaterjohn 2012-01-06 19:40:01

+0

嗨,大家好,這其實回答了這個問題 http://stackoverflow.com/questions/8385444/weak-linking-multiple-frameworks-for-iphone-apps-weak-framework 馬克正確回答了第一個問題,乾杯馬克:D – slaterjohn 2012-01-06 19:48:26

1

斯威夫特:

if let filter = CIFilter(name: "CIComicEffect") 
     { 
      // Filter exist 
     } 
     else 
     { 
      // Filter does not exist 
     } 
相關問題