【发布时间】:2014-08-01 19:09:02
【问题描述】:
我在谷歌上搜索过,但无法找出与 respondsToSelector: 等效的 swift 是什么。
这是我唯一能找到的 (Swift alternative to respondsToSelector:),但与我的情况不太相关,因为它检查委托的存在,我没有委托我只想检查是否有新的 API在设备上运行时是否存在,如果不回退到以前版本的 api。
【问题讨论】:
-
所有这些都被替换为 Optional,并通过 Optional Chaining 来执行
-
鉴于 Apple 明确建议使用
NSClassFromString和respondsToSelector以及其他机制来检查新实现的功能,我必须相信这些机制要么已经到位,要么将在那里发布前。尝试观看来自 WWDC 的Advanced Interop...视频。 -
@Jack Wu 但是,如果新方法是在诸如 UIApplication 或 UIViewController 之类的基础上引入的新方法呢?这些对象不是可选的,新方法也不是可选的。如何检查是否必须调用例如 UIApplcation:newVersionOfMethodX 或必须调用 UIApplication:deprecatedVersionOfMethodX? (鉴于您可以在 iOS 7 上使用 Swift 构建和运行应用程序,这将是一个非常常见的场景)
-
您关注/曾经关注的 API 是否与 Apple API 相关?
-
@PotassiumPermanganate - 当然,如果答案是“是的,我使用的是 Apple API”,那么也许他可以在 Swift 2.x 中使用
if #available(...)以避免首先使用respondsToSelector.但你知道的。 (apple.co/1SNGtMQ)
标签: objective-c swift selector