2012-01-06 2 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: Библиотека не загружена: /System/Library/Frameworks/CoreImage.framework/CoreImage Ссылка от:/Пользователи/JohnSlater/Библиотека/Поддержка приложений/iPhone Simulator/4.3.2/Приложения/C964F4D5-FAD1-4348-895D-551FBD923915/SXIWalls .app/SXIWalls Причина: изображение не найдено « Что я начинаю думать, потому что Framework CoreImage вообще не доступен в iOS4. Как мне обойти эту ошибку? – slaterjohn

+0

Привет, ребята, это на самом деле ответ на этот вопрос http://stackoverflow.com/questions/8385444/weak-linking-multiple-frameworks-for-iphone-apps-weak-framework Марк ответил на первый вопрос правильно, ура Марка: D – slaterjohn

1

Swift:

if let filter = CIFilter(name: "CIComicEffect") 
     { 
      // Filter exist 
     } 
     else 
     { 
      // Filter does not exist 
     } 
Смежные вопросы