ここでは、クラスのインスタンスを別のクラスに渡そうとしていますが、エディタはそれを間違いとしてマークしています。これはコードです。すぐに別のクラスへの参照としてインスタンスを渡す
ViewController.swift
import UIKit
import Foundation
class ViewController: UIViewController {
let handler: Handler = Handler(controller: self)
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
Handler.swift
import Foundation
class Handler
{
var controller: ViewController? = nil
init(controller: ViewController) {
self.controller = controller
}
}
ラインlet handler: Handler = Handler(controller: self)
は、次のエラーを与える:
Cannot convert value of type '(NSObject) ->() -> ViewController' to expected argument type 'ViewController'
私は、Java、C#の、PHPの背景から来て、私の知る限りではself
は、これらの言語でthis
のと同じです、まだ私はインスタンスを渡す方法を見つけ出すことはできません。
これは、ハンドラクラスがアクティブなViewControllerインスタンスのメソッドを呼び出すことができるようにするためのものです。