当前位置: 首页 > 面试题库 >

什么时候在Swift中使用@objc?

梁丘安晏
2023-03-14
问题内容

在Swift中,我看到一些类似的方法:

@objc private func doubleTapGestureRecognized(recognizer: UITapGestureRecognizer)

我想知道何时使用@objc?我读了一些文档,但他们说要在Objective-C中调用它时,应添加@objc标志

但是,这是Swift中的私有函数,@ obj的作用是什么?


问题答案:

private表示仅在Swift中可见。因此使用@objc在Objective-C中可见。如果您有功能可以快速选择私有功能,则需要此功能。

@objc属性使您的Swift API在Objective-C和Objective-C运行时中可用。

参见:https
:
//developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-
CAPIs.html



 类似资料:
  • 问题内容: 奇怪的是: 似乎或多或少被定义为。通过这种方式很容易产生错误: 一些fname意外地以else块结尾。修复很简单,我们应该改用它,但是从表面上看,这似乎是一种不错的pythonic方式,并且比“正确”的方式更具可读性。 由于字符串是不可变的,所以为什么字符串错误是什么技术细节?什么时候进行身份检查更好,什么时候进行平等检查更好? 问题答案: 据我所知,检查对象身份是否相等。由于没有强制

  • 问题内容: 我有一个将客户发送到另一个站点来处理付款的应用程序。客户之外的另一个站点在我们的服务器上调用一个页面,让我们知道付款的状态。被调用页面会检查付款应用程序提供的参数,并检查我们是否知道该交易。然后,它更新数据库以反映状态。这一切都无需与客户进行任何互动即可完成。 我个人选择将此功能实现为JSP,因为将文件拖放到文件系统中比编译和打包文件然后将条目添加到配置文件中要容易得多。 考虑到页面的

  • 问题内容: 我怎么能说: 为什么函数调用中不需要括号,而最后一行呢? 问题答案: 是一个功能 调用该函数并产生该函数返回的任何值。 setTimeout的目的是在一段时间后运行代码。你需要的功能只是传递给它(这样的setTimeout可以自称在适当的时候函数),因为如果你将它传递给setTimeout的前调用的函数(用括号),将执行 现在 而不是1秒后,。

  • 问题内容: 我怕可变参数。我不知道该怎么用。 另外,让人们随心所欲地传递争论是很危险的。 什么样的上下文示例将是使用它们的好地方? 问题答案: 对于需要处理不确定数目的对象的任何方法,Varargs都是有用的。一个很好的例子是。格式字符串可以接受任意数量的参数,因此你需要一种机制来传递任意数量的对象。

  • 问题内容: 是像搬运工容器环境域名系统,可以代替引用其他容器中时? 问题答案: 该标志仅更改容器内的主机名。如果您的应用程序需要主机名的特定值,则可能需要这样做。它不会在docker外部更改DNS,也不会更改网络隔离,因此它将不允许其他人使用该名称连接到容器。 您可以使用容器名称或容器的ID(短短12个字符),使用Docker的嵌入式dns从一个容器连接到另一个容器,只要两个容器都在同一网络上并且

  • 问题内容: 我读包含在大括号关键字后的代码块中一个的上下文中流动,必须调用标有一个函数使用属性或传输控制,,或。 最后一部分很清楚,而第一部分我不太清楚。 首先,即使您未声明任何返回类型,任何函数都将返回某些内容(至少一个空元组)。其次,什么时候可以使用函数?文档是否建议一些标记为的内置内置方法? Guard语句的else子句是必需的,并且必须调用带有noreturn属性标记的函数,或者使用以下语