selfの参照先について
iOS Developer Libraryのswiftチュートリアル、Connect the UI to Codeの章にてdelegateについて学んでいた際にわからない箇所があったので質問させて頂きます。
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var mealNameLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
nameTextField.delegate = self
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
func textFieldDidEndEditing(textField: UITextField) {
mealNameLabel.text = textField.text
}
@IBAction func setDefaultLabelText(sender: UIButton) {
mealNameLabel.text = "Default Text"
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
以下の部分ですが、ViewControllerがテキストフィールドのdelegateになること意味していると理解しています。
nameTextField.delegate = self
そこで
nameTextField.delegate = ViewController()
と書き換えたところコード上ではエラーがでないのですが、シミュレーターではテキストフィールドに文字を入力し、リターンキーを押してもラベルは変更されなくりました。
このselfは何を参照しているのでしょうか。