gpt4 book ai didi

swift - Swift 2.3 中#selector update 的优势是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 22:22:06 24 4
gpt4 key购买 nike

我看不出只将方法名称写成字符串有什么问题。我只是好奇为什么这样更好?

最佳答案

这是一个巨大的变化。基本上,这就填补了语言中最大的崩溃漏洞。

如果您将 Selector 构造为字符串文字,并且构造错误 — 这太容易了 — 或者如果构造正确但相关方法未公开给 Objective-C,您将崩溃在运行时 出现可怕的Unrecognized selector 控制台消息——这是 Objective-C 和 Swift 中最常见的崩溃。 (对“无法识别的选择器”做一个堆栈溢出;你会明白我的意思。)

现在,#selector 语法意味着您将使用函数引用 形成选择器,编译器将在编译时检查 .如果你犯了一个错误,编译器会阻止你死去。如果你做对了,编译器会正确地为你形成选择器。您不需要了解有关如何构成选择器字符串的任何;编译器完成所有工作。因此,您以这种方式崩溃的机会有效地减少到零。 “无法识别的选择器”崩溃就像门钉一样死了。

关于swift - Swift 2.3 中#selector update 的优势是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36211030/

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