有人可以解释如何调用某些函数吗?当有人像这样创建一个新对象时,会自动调用名为init的函数:var object: type = type(param1)
。
我也在NSURLConnection
看到了这一点。方法似乎有connectionDidFinishLoading
之类的名字,但我不明白,它是否被编码为该名称的快速语言以进行特殊操作?该功能是否会在连接完成后立即运行?就像它甚至知道除非你“向这个功能发送信息”。
答案 0 :(得分:0)
首先,在Swift中,你不会发送消息"到了对象。函数和方法调用由编译器直接链接在一起。唯一的例外是当你拥有从NSObject
继承的对象,因为它仍然在Objective-C运行时运行。
其次,type(param1)
是init
函数的示例。它不是自动"叫它。这就是你定义initializer methods in Swift的方式。您在创建对象时直接调用它。
connectionDidFinishLoading
上定义了第三个NSURLConnectionDataDelegate
。创建NSURLConnection
时,您可以为其提供应该实现此协议的委托。如果您将对象设置为实现协议的委托,则NSURLConnection
实例将在适当时调用该方法。这就是Delegate Pattern在UIKit和Cocoa上的作用。