什么是swift等效的responsesToSelector?
发布时间:2020-12-14 06:18:42 所属栏目:百科 来源:网络整理
导读:我已经google了,但是没能找到什么swift等效于响应ToSelector:is。 这是我能找到的唯一的东西(Swift alternative to respondsToSelector:),但在我的情况下不太相关,因为它检查委托的存在,我没有委托我只是想检查一个新的API是否存在运行在设备上,如果不
我已经google了,但是没能找到什么swift等效于响应ToSelector:is。
这是我能找到的唯一的东西(Swift alternative to respondsToSelector:),但在我的情况下不太相关,因为它检查委托的存在,我没有委托我只是想检查一个新的API是否存在运行在设备上,如果不回退到api的先前版本。
如前所述,在Swift的大部分时间你可以实现你所需要的?可选的解包器操作符。当且仅当对象存在(不是nil)并且该方法被实现时,这允许您调用对象上的方法。
在你仍然需要responsesToSelector:的情况下,它仍然作为NSObject协议的一部分。 如果你在Swift中的Obj-C类型上调用responsesToSelector:,那么它的工作方式与你所期望的相同。如果你使用它自己的Swift类,你需要确保你的类派生自NSObject。 这里有一个Swift类的例子,你可以检查它是否响应一个选择器: class Worker : NSObject { func work() { } func eat(food: AnyObject) { } func sleep(hours: Int,minutes: Int) { } } let worker = Worker() let canWork = worker.respondsToSelector(Selector("work")) // true let canEat = worker.respondsToSelector(Selector("eat:")) // true let canSleep = worker.respondsToSelector(Selector("sleep:minutes:")) // true let canQuit = worker.respondsToSelector(Selector("quit")) // false 重要的是,不要忽略参数名称。在本例中,Selector(“sleep ::”)与Selector(“sleep:minutes:”)不同。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 【Unity】SQLite发布到Android端遇到的那些坑
- ruby – 使用thor作为复杂的命令行工具
- Ajax获取代理返回的Json数据
- 正则表达式之Multiline和Dotall模式
- ruby-on-rails – Rails ActiveRecord关系 – 避免写.blank
- ruby-on-rails – 我应该如何在生产环境中运行delayed_job?
- c# – Newtonsoft JSON.NET 6.0.8和Mac OSX上的Mono以光荣的
- 组件化可视化图表 - Recharts
- xml – 如何在Wix中读取app.config值并设置属性
- Oracle redo log切换非常频繁