【问题标题】:Swift reserved function names?Swift 保留函数名?
【发布时间】:2014-06-26 23:40:02
【问题描述】:

谁能解释一下某些函数是如何被调用的?当有人像这样创建新对象时,是否会自动调用名为 init 的函数:var object: type = type(param1)。 我也在NSURLConnection 中看到了这一点。方法似乎有类似connectionDidFinishLoading 之类的名称,但我不明白,它是否被编码成快速语言以使该名称具有特殊操作?该功能是否会在连接完成后立即运行?除非您向该功能“发送消息”,否则它甚至会如何知道。

【问题讨论】:

    标签: function methods swift reserved


    【解决方案1】:

    首先,在 Swift 中,您不再向对象“发送消息”。函数和方法调用由编译器直接链接在一起。唯一的例外是当您拥有从 NSObject 继承的对象时,因为它仍然在 Objective-C 运行时上运行。

    其次,type(param1)init 函数的示例。它不是“自动”调用它。这就是您定义initializer methods in Swift 的方式。您在创建对象时直接调用它。

    第三个connectionDidFinishLoadingNSURLConnectionDataDelegate 上定义。当你创建一个NSURLConnection 时,你可以给它一个应该实现这个协议的委托。如果您将对象设置为实现协议的委托,NSURLConnection 实例将在适当时调用该方法。这就是 UIKit 和 Cocoa 中的 Delegate Pattern 的工作原理。

    【讨论】:

      猜你喜欢
      • 2019-03-07
      • 2010-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      相关资源
      最近更新 更多