Swift等效于reactsToSelector是什么?
我已经用谷歌搜索,但无法找出什么是等效respondsToSelector:
的。
这是我唯一能找到的(Swift的替代方法responsesToSelector:),但在我的情况下并没有太大意义,因为它检查了委托的存在,我没有委托,我只想检查是否存在新的API在设备上运行时是否返回,如果不是,则返回原先的api版本。
-
如前所述,在
大多数情况下,您可以使用?
可选的unwrapper运算符来实现所需的功能。这样,当且仅当对象存在(不存在nil
)并且实现了该方法时,您才可以在该对象上调用方法。在您仍然需要的情况下
respondsToSelector:
,它仍然是NSObject
协议的一部分。如果您
respondsToSelector:
在Swift 中调用Obj-
C类型,则其工作原理与您期望的相同。如果要在自己的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:")
。
-
Swift-等效于IBOutletCollection
2021-01-31 关注 0 浏览74 1答案
-
Swift等效于[NSDictionary initWithObjects:forKeys:]
2021-01-31 关注 0 浏览76 1答案
-
Swift中的Java接口或目标C协议等效于什么?
2021-01-31 关注 0 浏览85 1答案
-
在Swift中是否等效于CGPathApply?
2021-01-31 关注 0 浏览78 1答案
-
在Swift和Array中,NSArray的writeToFile:原子方式等效于什么?
2021-01-31 关注 0 浏览134 1答案
-
在Swift和Array中,NSArray的writeToFile:原子方式等效于什么?
2021-01-31 关注 0 浏览60 1答案
-
什么是Swing等效于HTML
2021-01-30 关注 0 浏览89 1答案
-
IntelliJ IDEA中等效于Eclipse的Ctrl + O(显示轮廓)快捷方式是什么?
2021-01-30 关注 0 浏览58 1答案
-
使用try-catch-finally等效于Java 7 try-with-resources字节码是什么?
2021-01-30 关注 0 浏览73 1答案
-
CORBA中有什么等效于writeReplace的吗?
2021-01-29 关注 0 浏览58 1答案