ios – 检查Swift中是否存在全局函数

ios – 检查Swift中是否存在全局函数,第1张

概述是否可以检测是否定义了某些全局函数(非类方法)(在iOS中)?像课堂上的respondsToSelector … Swift目前不支持查找全局功能. 对于C函数(Apple的框架中的大多数全局函数都是C函数),至少有两种方法: >使用弱链接符号 >动态链接器API:dlopen 如果可以找到符号,则动态检查(在运行时). 这是一个检查UIGraphicsBeginImageContextWithO 是否可以检测是否定义了某些全局函数(非类方法)(在iOS中)?像课堂上的respondsToSelector …解决方法 Swift目前不支持查找全局功能.

对于C函数(Apple的框架中的大多数全局函数都是C函数),至少有两种方法:

>使用弱链接符号
>动态链接器API:dlopen

如果可以找到符号,则动态检查(在运行时).

这是一个检查UIGraphicsBeginImageContextWithOptions(iOS 4引入)是否可用的示例:

voID UIGraphicsBeginImageContextWithOptions(CGSize size,BOol opaque,CGfloat scale) __attribute__((weak));static inline BOol hasUIGraphicsBeginImageContextWithOptions() {    return UIGraphicsBeginImageContextWithOptions != NulL;}

这是使用dlsym的相同检查:

#import <dlfcn.h>static inline BOol hasUIGraphicsBeginImageContextWithOptions() {    return dlsym(RTLD_SELF,"UIGraphicsBeginImageContextWithOptions") != NulL;}

使用dlsym的优点是你不需要声明,并且它可以轻松移植到Swift.

总结

以上是内存溢出为你收集整理的ios – 检查Swift中是否存在全局函数全部内容,希望文章能够帮你解决ios – 检查Swift中是否存在全局函数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1100265.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存