如何以编程方式检查UIKit
是否具有给定的类?
例如,在iOS3上没有UINib
,但在iOS4上有。{1}}。我可以在SDK4上构建,但如果我尝试在iOS3.0设备上运行,我将遇到异常。
答案 0 :(得分:3)
iOS 4包含一个新的UINib类,可以快速支持unarchiving nib 文件。虽然这个类是iOS SDK 4的新功能,但它存在但是 私有,在以前的版本中。需要特别注意的时候 部署使用UINib类的代码,也可以在iOS版本上运行 在版本4之前。具体来说,您无法确定 仅使用NSClassFromString函数的类的可用性, 因为该检查返回iOS 3.x及更早版本的私有类。 相反,在使用NSClassFromString获取UINib类之后 还必须使用返回类的respondsToSelector:方法 看看它是否响应nibWithNibName:bundle:方法。如果它 响应该方法,您可以使用该类。