Doppelter Aufruf ?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Doppelter Aufruf ?

    Habe eine komische Sache die ich nicht verstehe:

    AppDelegate:

    Quellcode

    1. func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    2. window = UIWindow(frame: UIScreen.main.bounds)
    3. window?.makeKeyAndVisible()
    4. window?.rootViewController = MainController()
    5. return true
    6. }






    MainController:

    Quellcode

    1. import UIKit
    2. class MainController: UIViewController {
    3. override func viewDidLoad() {
    4. super.viewDidLoad()
    5. _ = EventController(type: "A")
    6. }
    7. }

    So wie der Code hier steht wird EventController einmal aufgerufen/initialisiert.


    Schreibe ich:

    Quellcode

    1. import UIKit
    2. class MainController: UIViewController {
    3. let bla = EventController(type: "A")
    4. override func viewDidLoad() {
    5. super.viewDidLoad()
    6. }
    7. }

    Wird der EventController 2 mal aufgerufen bzw initialisiert.

    Kann mir jemand sagen woran das liegen kann?

    Schreibe ich den Aufruf außerhalb von viewdidload werden auch meine GEO Funktionen vom EventController aufgerufen. Z. B. erreicht er die Methode "didUpdateLocations"

    Schreibe ich aber den Aufruf in viewDidLoad erreicht er didUpdateLocations aber nicht.




    EventController:

    Quellcode

    1. init(type: String){
    2. userLocation.delegate = self
    3. userLocation.startLocation()
    4. }
    UserLocation:


    Quellcode

    1. import MapKit
    2. class UserLocation: CLLocation, CLLocationManagerDelegate{
    3. let locationManager = CLLocationManager()
    4. weak var delegate: GeoModelProtocol?
    5. func startLocation(){
    6. print("startLocation")
    7. locationManager.delegate = self
    8. locationManager.desiredAccuracy = kCLLocationAccuracyBest
    9. locationManager.requestAlwaysAuthorization()
    10. if CLLocationManager.locationServicesEnabled() {
    11. locationManager.requestLocation()
    12. }
    13. }
    14. func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    15. print("locationManager")
    16. }
    17. func locationManager(_ manager: CLLocationManager, didFailWithError error: Error)
    18. {
    19. print("Error \(error)")
    20. }
    21. }
    Alles anzeigen


    locationManager wird nur im ersten Fall ausgegeben ...