2012-01-06 5 views
1

iOS5의 일부 기능을 사용하고 싶지만 여전히 iOS4 용으로 빌드 할 수 있지만 문제가 있습니다. 일반적으로 나는 respondsToSelector:을 사용할 것이지만 이것이 올바른 방법인지 확실하지 않거나 정확하게 삽입해야하는 것이면 정확하지 않습니다.CIFilter 확인은 현재 iOS에서 가능합니다.

내가 이해하는 것으로부터 iOS5 +에서만 사용할 수있는 CIFilter를 사용하려고하는데, 현재 설치된 OS에서이 기능이 사용 가능한지 확인하는 방법은 무엇입니까?

고맙습니다.

답변

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

안녕하세요 마크 i는 아이폰 OS 4.3 시뮬레이터 내에서 응용 프로그램을 실행하기 위해 노력하고있어 나는 다음과 같은 오류를 "dyld를 얻을 수 있지만 그것이 작동하고 다음과 같습니다 라이브러리가로드되지 않았습니다. /System/Library/Frameworks/CoreImage.framework/CoreImage 참조 :/사용자/JohnSlater/라이브러리/응용 프로그램 지원/iPhone 시뮬레이터/4.3.2/응용 프로그램/C964F4D5-FAD1-4348-895D-551FBD923915/SXIWalls .app/SXIWalls 이유 : 이미지를 찾을 수 없습니다 " 내가 생각하기 시작한 것은 CoreImage 프레임 워크가 iOS4에서 사용할 수 없기 때문입니다. 이 오류를 해결하려면 어떻게해야합니까? – slaterjohn

+0

안녕 얘들 아, 이것은 실제로 이 마크가 올바르게 첫 질문에 대답 http://stackoverflow.com/questions/8385444/weak-linking-multiple-frameworks-for-iphone-apps-weak-framework 그 질문에, 환호 대답 마크 : D – slaterjohn

1

스위프트 :

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