gpt4 book ai didi

引用 Objective-C 方法的 Swift #selector

转载 作者:可可西里 更新时间:2023-11-01 01:37:00 24 4
gpt4 key购买 nike

在 swift 2.2 版本中可以得出结论,将可以通过#selector 引用 Objective-C 方法。

let sel = #selector(UIView.insertSubview(_:at:)) // produces the Selector "insertSubview:atIndex:"

所以之前我们使用像简单字符串这样的方法名称:"doBangBang" 并调用它 Selector("doBangBang") 现在我们应该像引用一样使用它到方法 MyClass.doBangBang() 并使用关键字 #selector(MyClass.doBangBang())?此功能是否弃用了 Selector?除了减少使用错误名称执行的功能的数量之外,这种改进还有什么好处?

最佳答案

此功能有效地弃用了 Selector("methodName") 以及仅使用 "methodName""methodName:" 作为选择器。

主要的好处是你不能再在方法字符串中打错字了,正如你在问题中所说的那样。

想象一个带有选择器的方法:

..., selector: "myMethod:")

输入错误会怎样?

..., selector: "mymethod:")

它崩溃了。

在新系统中,它是类型安全的:编译器可以检查您调用的方法是否确实存在——不再有拼写错误,不再调用不存在的函数:

..., selector: #selector(myMethod))

因为编译器可以检查类型。我们还从 Xcode 获得自动建议和自动完成功能,以及类型安全操作带来的所有细节。

关于引用 Objective-C 方法的 Swift #selector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36007067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com