如何检测 dyld 符号是否存在?

发布于 2024-12-10 09:55:38 字数 289 浏览 0 评论 0原文

有没有通用的方法来检测符号是否存在?类似于iOS5中的CGPathCreateCopyByStrokingPath(),仅在iOS5及更高版本上可用。 如果我在 iOS 4 设备上使用此例程编译并运行应用程序,我会收到运行时 dyld 错误。

在 Objective-C 中,+class 和其他实用 API 可以用来确定某个类或某个选择器的存在,是否有任何 API 可以在 dyld 符号上执行此操作?

或者是否已获得 Apple 的许可,可以在面向 AppStore 的应用程序中使用 dyld 函数?

Is there a common way to detect if a symbol exists or not? Like CGPathCreateCopyByStrokingPath() in iOS5, which is only available on iOS5 and later.
If I compile and run apps using this routine on iOS 4 devices, I would get a runtime dyld error.

In Objective-C, +class and other utility APIs can be used to determine the existence of some class or some selector, is there any API to do this on dyld-ed symbols?

Or is it under Apple's permission to use dyld functions for an AppStore oriented app?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蝶舞 2024-12-17 09:55:38

要检查函数的可用性,请显式地将其地址与 NULL 或 nil 进行比较。

if (CGPathCreateCopyByStrokingPath != NULL) {
    // it exists
}

这是Apple 关于此事的文档 (清单 3-2)。

To check the availability of a function, explicitly compare its address to NULL or nil.

if (CGPathCreateCopyByStrokingPath != NULL) {
    // it exists
}

Here's Apple's documentation on the matter (listing 3-2).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文