NSObject, MKMapViewDelegate
に準拠するサブクラスクラスがあり、それをmapView.delegate
プロパティに割り当てましたが、デリゲートメソッドは呼び出されません。 MKMapViewDelegate
を適切にサブクラス化し、そのクラスをデリゲートとして設定するにはどうすればよいですか?MKMapViewDelegateサブクラスメソッドが呼び出されていない
import UIKit
import MapKit
class HomeVC: ViewController {
@IBOutlet weak var mapView: MKMapView! didSet {
mapView.delegate = MyMapViewDelegate()
}
}
class MyMapViewDelegate: NSObject, MKMapViewDelegate {
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
print("Not being called")
return renderer
}
}
- メソッドが呼び出さになるだろう。だから、私は正しくサブクラス化していないか、サブクラス化されたオブジェクトを正しくインスタンス化していないと仮定しています。
...そのオブジェクトへの強い参照がありますように、これはあなたのビューコントローラにデリゲートプロパティを作成することで解決できると信じてあなたが作成したデリゲートはすぐに解放されます。ビューコントローラのプロパティに保存する必要があります。 – dan
ファジーはこれをいかに迅速に処理しますか?これは弱い参照やデリゲートオブジェクトに何も保持していないという事実のために客観的に起こります。したがって、その関数がスコープから離れるとすぐに割り当てが解除されます。 ..ちょっと考えて... – Mike
@ダンダン...あなたはそれに私を打つ:) – Mike