iOS respondsToSelector方法

简介: iOS respondsToSelector方法

如果一个对象收到一个消息调用一个它未定义的方法那么会引起一个错误。这和调用一个不存在的方法有些相似。但是由于发送消息是在运行时进行的,所以这些错误经常只有到程序实际运行时才会暴露出来。


当消息的选择器是一个常量并且知道接收者的类型时,这种错误相对容易避免。例如,自己写了一个程序,当然能够确定接收者能够响应什么。如果接收者是静态类型,编译器会替完成校验。

但是,如果消息选择器或者接收者的类型是可变的,这种校验就只能到运行时才能进行。NSObject类中定义的respondsToSelector:方法可以检验一个接收者是否可以响应一个消息。它把方法选择器作为参数,并且返回接收者是否有一个与选择器相匹配的方法。

if ( [anObject respondsToSelector:@selector(setOrigin::)] )
     [anObject setOrigin:0.0 :0.0];
else
     fprintf(stderr, "%s can't be placed\n",
     [NSStringFromClass([anObject class]) UTF8String]);


当向一个对象发送消息,但是这个对象在编译时不能完全控制时,respondsToSelector:校验就显得特别重要。例如,有的代码会根据一个变量向一个对象发送消息来运行不同的方法,就需要确保接收者实现了需要运行的方法。

目录
相关文章
|
7月前
|
移动开发 前端开发 数据安全/隐私保护
iOS发布证书.p12文件无密码解决办法及导出带密码的新.p12文件方法
iOS发布证书.p12文件无密码解决办法及导出带密码的新.p12文件方法
216 0
|
7月前
|
安全 编译器 开发工具
​iOS安全加固方法及实现
​iOS安全加固方法及实现
77 0
​iOS安全加固方法及实现
|
7月前
|
存储 监控 iOS开发
iOS应用崩溃了,如何通过崩溃手机连接电脑查找日志方法
在iOS应用开发过程中,调试日志和奔溃日志是开发者必不可少的工具。当iOS手机崩溃时,我们可以连接电脑并使用Xcode Console等工具来查看日志。然而,这种方式可能不够方便,并且处理奔溃日志也相当繁琐。克魔助手的出现为开发者带来了极大的便利,本文将详细介绍其功能和使用方法。 克魔助手会提供两种日志,一种是实时的,一种的是崩溃的。(由于崩溃日志的环境很麻烦,目前只展示实时日志操作步骤)
|
iOS开发 开发者
📝 App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
在iOS应用程序开发过程中,进行App备案并获取公钥及证书SHA-1指纹是至关重要的步骤。本文将介绍如何通过appuploader工具获取iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹,帮助开发者更好地理解和应用该过程。
|
7月前
|
存储 iOS开发 开发者
使用克魔助手进行iOS数据抓包和HTTP抓包的方法详解
使用克魔助手进行iOS数据抓包和HTTP抓包的方法详解
111 0
|
7月前
|
小程序 前端开发 Android开发
解决小程序中textarea ios端样式不兼容的两种方法
解决小程序中textarea ios端样式不兼容的两种方法
226 0
|
4月前
|
语音技术 开发工具 图形学
Unity与IOS⭐一、百度语音IOS版Demo调试方法
Unity与IOS⭐一、百度语音IOS版Demo调试方法
|
1月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
31 2
|
4月前
|
iOS开发
App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
234 0
App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
|
7月前
|
Android开发 iOS开发 开发者
App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
437 0