为什么在视图中添加操作时没有Swift等价物?
环顾堆栈溢出,您将发现许多关于如何向按钮添加操作、向视图添加操作等的资源。每个资源都使用为什么在视图中添加操作时没有Swift等价物?,swift,Swift,环顾堆栈溢出,您将发现许多关于如何向按钮添加操作、向视图添加操作等的资源。每个资源都使用@objc,因为#选择器是objc代码。但是,我找不到任何一个资源在不使用objc的情况下向视图添加操作。 将某物标记为objc会将其暴露给Objective-C运行时,这是使用选择器时所必需的 本质上,它归结为以下问题: 是否可以在不使用@objc代码的情况下创建操作? 如果是这样,为什么这么多资源使用@objc代码进行操作 如果不可能,为什么还没有采取任何行动? 为什么我们达到了Swift第4版,
@objc
,因为#选择器
是objc
代码。但是,我找不到任何一个资源在不使用objc
的情况下向视图添加操作。
将某物标记为objc
会将其暴露给Objective-C
运行时,这是使用选择器时所必需的
本质上,它归结为以下问题:
- 是否可以在不使用
代码的情况下创建操作?@objc
- 如果是这样,为什么这么多资源使用
代码进行操作@objc
- 如果是这样,为什么这么多资源使用
- 如果不可能,为什么还没有采取任何行动?
- 为什么我们达到了Swift第4版,却没有为视图添加操作的
等价物Swift
- 将来是否会有一个更新来实现向视图添加操作的
变体Swift
- 为什么我们达到了Swift第4版,却没有为视图添加操作的
UIControl
(和类似类),甚至在Objective-C块出现之前
您的问题对于Objective-C同样有效。为什么不提供基于块的API而不是过时的目标/选择器模式
所以这不是更新Swift的问题。这是一个向使用目标/选择器模式的相关类添加基于块/闭包的API的问题
如果您在GitHub上进行一点搜索,您将发现一个基于闭包的Swift API,它实际上实现了您想要的功能。当然,它的实现是使用旧的目标/选择器API