iOS 和 UIKit 类检查

发布于 2024-12-13 05:28:25 字数 140 浏览 0 评论 0原文

如何以编程方式检查 UIKit 是否具有给定的类?

例如,在 iOS3 上没有 UINib,但在 iOS4 上有。我可以在 SDK4 上构建,但如果我尝试在 iOS3.0 设备上运行,我会遇到异常。

How do you programmatically check if UIKit has a given class?

For example, on iOS3 there's no UINib, but on iOS4 there is. I can build on SDK4, but if I try to run on an iOS3.0 device I'll meet an exception.

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

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

发布评论

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

评论(1

遮了一弯 2024-12-20 05:28:25

iOS 4 发行说明状态:

iOS 4 包含一个新的 UINib 类来支持快速解档 nib
文件。虽然这个类对于 iOS SDK 4 来说是新的,但它确实存在,但是
私有,在以前的版本中。需要特别注意的时候
部署使用 UINib 类并且也在 iOS 版本上运行的代码
在版本 4 之前。具体来说,您无法确定
仅使用 NSClassFromString 函数即可获得该类,
因为该检查在 iOS 3.x 及更早版本上返回私有类。
相反,在使用 NSClassFromString 获取 UINib 类之后,您
还必须使用返回类的respondsToSelector:方法
看看它是否响应 nibWithNibName:bundle: 方法。如果它
响应该方法,您可以使用该类。

The iOS 4 release notes state:

iOS 4 includes a new UINib class to support rapidly unarchiving nib
files. While this class is new to iOS SDK 4, it was present but
private, in previous releases. Special care needs to be taken when
deploying code that uses the UINib class and also runs on iOS releases
prior to version 4. Specifically, you cannot determine the
availability of the class solely using the NSClassFromString function,
because that check returns a private class on iOS 3.x and earlier.
Instead, after getting the UINib class using NSClassFromString, you
must also use the respondsToSelector: method of the returned class to
see if it responds to the nibWithNibName:bundle: method. If it
responds to that method, you can use the class.

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