Objective-C / iOS - 测试C函数的存在?

时间:2011-01-13 21:45:56

标签: iphone objective-c c ios

有没有办法测试Objective-C中是否存在C函数?我正在寻找像“respondsToSelector”这样的东西,但是对于C函数。

更具体地说,我正试图在iOS中测试“UIGraphicsBeginImageContextWithOptions(CGSize size,BOOL opaque>,CGFloat scale)”的存在。

感谢。

3 个答案:

答案 0 :(得分:10)

if(&UIGraphicsBeginImageContextWithOptions != NULL)
    UIGraphicsBeginImageContextWithOptions();
    else NSLog(@"No UIGraphicsBeginImageContextWithOptions function");

答案 1 :(得分:2)

是的,请参阅weak linking上的文档。

在调用函数之前,检查函数指针是否为NULL是可行的。

答案 2 :(得分:1)

由于UIGraphicsBeginImageContextWithOptions仅出现在iOS 4.0及更高版本中,因此您可以使用__IPHONE_OS_VERSION_MAX_ALLOWED macro检查iOS目标版本:

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