Objective-C / iOS - Тест на наличие функции C? - PullRequest
1 голос
/ 14 января 2011

Есть ли способ проверить существование функций C в Objective-C?Я ищу что-то вроде "responseds ToSelector", но для функций C.

В частности, я пытаюсь проверить наличие в iOS «UIGraphicsBeginImageContextWithOptions (CGSize size, BOOL opaque>, CGFloat scale)».

Ответы [ 3 ]

10 голосов
/ 14 января 2011
if(&UIGraphicsBeginImageContextWithOptions != NULL)
    UIGraphicsBeginImageContextWithOptions();
    else NSLog(@"No UIGraphicsBeginImageContextWithOptions function");
2 голосов
/ 14 января 2011

Да, см. Документацию по слабая ссылка .

Сработает проверка, равен ли указатель функции NULL перед вызовом функции.

1 голос
/ 14 января 2011

Поскольку UIGraphicsBeginImageContextWithOptions присутствует только в iOS 4.0 и более поздних версиях, вы можете проверить целевую версию iOS с помощью макроса __IPHONE_OS_VERSION_MAX_ALLOWED :

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 40000
    UIGraphicsBeginImageContextWithOptions(...);
#else
    // Function not available, fail gracefully
#endif
...