gpt4 book ai didi

swift - 为什么没有 Swift 等价于向 View 添加操作?

转载 作者:搜寻专家 更新时间:2023-11-01 07:01:27 24 4
gpt4 key购买 nike

环顾 Stack Overflow,您会发现许多关于如何向按钮添加操作、向 View 添加操作等的资源。这些资源中的每一个都使用@objc,因为#selectorsobjc 代码。但是,我找不到任何资源可以在不使用 objc 的情况下向 View 添加操作。将某些东西标记为 objc 会将其暴露给 Objective-C 运行时,这在使用选择器时是必需的。

本质上,它归结为这些问题:

  • 是否可以在不使用@objc 代码的情况下创建 Action ?
    • 如果是这样,为什么有这么多资源使用 @objc 代码来执行操作?
  • 如果不可能,为什么还没有采取任何措施?
    • 为什么我们已经达到了 Swift 版本 4,却没有用于向 View 添加操作的 Swift 等价物?
    • 将来是否会有更新来实现 Swift 变体以向 View 添加操作?

最佳答案

目标/选择器机制是很久以前在 Objective-C 中编写 UIControl(和类似类)的方式,甚至在 Objective-C block 出现之前。

你的问题对 Objective-C 来说同样有效。为什么 UIControl(和类似的)不提供基于 block 的 API 而不是过时的目标/选择器模式?

所以这不是更新 Swift 的问题。这是一个向使用目标/选择器模式的相关类添加基于 block /闭包的 API 的问题。

如果您在 GitHub 上稍作搜索,您会发现一个基于闭包的 Swift API,它实际上可以满足您的需求。当然,它的实现是使用旧的目标/选择器 API。

关于swift - 为什么没有 Swift 等价于向 View 添加操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51005654/

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