检测实例或类方法是否有效

来源:互联网 发布:淘宝旧版本5.2.8下载 编辑:程序博客网 时间:2024/04/28 14:11

有两个关于 iOS SDK 的重要概念要记住:
Base SDK(基底 SDK)
这个 SDK 是用来编译应用程序。可能是最新最大的 SDK,且能存取所有新的 API。
Deployment SDK/Target(部署 SDK)
这边的 SDK 使指定你希望编译后并执行的装置 SDK 版本。
因为就事实上,编译应用是基于 Base SDK 与 Depolyment SDK 两个 SDK 编译。这取决于你正在使用的设定(装置或模拟器)。程序必须不断检查实例或类方法是否存在,否则程序会是脆弱的,因为部署的装置的 SDK 版本,不一定是最新的,也许方法会不存在。


使用NSObject的instancesRespondToSelector:类方法检测指定的selector是否存在类实例中。要确认一个类是否响应本身的类方法,需使用instancesRespondToSelector:类方法,需要版本实例是否响应方法,需使用respondsToSeletor:的实例方法.


-(BOOL) respondsToSelector: selector 判读实例是否有这样方法

+(BOOL) instancesRespondToSelector:  判断类是否有这个方法。此方法是类方法,不能用在类的对象

另,

-(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例

-(BOOL) isMemberOfClass: classObj 判断是否是这个类的实例