Objective-C:如何检查 C 函数是否受支持
如何执行运行时检查以查看是否可以使用 UIGraphicsBeginImageContextWithOptions
,该功能仅从 iOS 4 开始可用。
我知道我可以检查 [[UIDevice currentDevice] systemVersion],但 Apple 建议使用诸如
NSClassFromString()
或 respondsToSelector:
之类的东西。 C 函数有 respondsToSelector:
吗?
How can I perform a run-time check to see if I can use UIGraphicsBeginImageContextWithOptions
, which is only available starting with iOS 4.
I know I could check [[UIDevice currentDevice] systemVersion]
, but Apple recommends using things like NSClassFromString()
or respondsToSelector:
. Is there a respondsToSelector:
for C functions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是我一直在使用的另一个选项。
C 函数是指针。如果您“弱”链接到
UIKit
框架,在 iOS 3 上,函数指针将只是NULL
,因此您可以通过执行以下操作来测试该函数是否存在:另请参阅: 如何在 Xcode 4 上使用弱链接框架?
Here's another option, which I've been using.
C functions are pointers. If you "weak" link to
UIKit
framework, on iOS 3 the function pointer will simply beNULL
, so you can test for the existence of the function by doing:See also: How do I weak link frameworks on Xcode 4?
您可能感兴趣的是 弱链接。 (参见“清单 3-2:检查 C 函数的可用性”。)
What you're probably interested in here is weak linking. (See "Listing 3-2: Checking the availability of a C function".)
这就是我的想法:
我认为这已经足够好了,但如果您有更好的建议,请回答。
This is what I'm going with:
I think this is good enough, but if you have any better suggestions, please answer.