誰かが特定の関数がどのように呼び出されるかを説明できますか? init という名前の関数は、誰かが次のように新しいオブジェクトを作成したときに自動的に呼び出されますvar object: type = type(param1)
。これも で見ましたNSURLConnection
。メソッドにはまたは何かのような名前が付いているようconnectionDidFinishLoading
ですが、わかりません。その名前が特別なアクションを持つようにswift言語にコード化されていますか? その機能は、接続が完了するとすぐに実行されますか? その関数に「メッセージを送信」しない限り、どのように知るのでしょうか。
1 に答える
0
まず、Swift では、オブジェクトに「メッセージを送信」しなくなりました。関数とメソッドの呼び出しは、コンパイラによって直接リンクされます。NSObject
これに対する唯一の例外は、Objective-C ランタイムで引き続き実行されるため、継承するオブジェクトがある場合です。
次に、関数type(param1)
の例ですinit
。「自動的に」呼び出すわけではありません。これがSwift でイニシャライザ メソッドを定義する方法です。オブジェクトを作成するときに直接呼び出しています。
3 番目connectionDidFinishLoading
は で定義されますNSURLConnectionDataDelegate
。を作成するときにNSURLConnection
、このプロトコルを実装するデリゲートを与えることができます。プロトコルを実装するデリゲートとして設定されたオブジェクトがある場合、NSURLConnection
インスタンスは必要に応じてそのメソッドを呼び出します。これが、UIKit と Cocoa のいたるところにあるデリゲート パターンのしくみです。
于 2014-06-27T05:58:50.080 に答える