Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 无法显示用户位置快捷界面_Swift_Xcode_Swiftui - Fatal编程技术网

Swift 无法显示用户位置快捷界面

Swift 无法显示用户位置快捷界面,swift,xcode,swiftui,Swift,Xcode,Swiftui,在我发布代码之前,我应该告诉你我的代码在一个项目上运行,而在另一个项目上没有运行 我得到的错误是: [MKCoreLocationProvider] CLLocationManager(<CLLocationManager: 0x280cfc050>) for <MKCoreLocationProvider: 0x283cd0870> did fail with error: Error Domain=kCLErrorDomain Code=1 "(null)&

在我发布代码之前,我应该告诉你我的代码在一个项目上运行,而在另一个项目上没有运行

我得到的错误是:

[MKCoreLocationProvider] CLLocationManager(<CLLocationManager: 0x280cfc050>) for <MKCoreLocationProvider: 0x283cd0870> did fail with error: Error Domain=kCLErrorDomain Code=1 "(null)"
  • 协调人
  • 位置管理器

  • 休息片刻后,我开始调试问题,我发现
    init()
    函数在文件
    3中没有被调用。位置管理器

    我试着从其他文件初始化对象,猜猜它做了什么,没有任何问题,这是另一个有线的东西

    因此,
    init()
    函数是从其他文件调用的,但是在
    4中。UserLocationMapView
    它没有被调用,我不明白为什么

    喝了一杯咖啡后,我发现在
    SceneDelegate
    中,我调用了错误的视图文件,其中显示了地图的
    UserLocationMapView
    ,但是我调用了
    3。
    SceneDelegate
    中的MapView


    这是一个愚蠢的错误,当您在
    SceneDelegate
    中调用这两个文件时,它们会毫无问题地显示地图。因此,当您看到模拟器中显示的映射时,您会认为它正在工作,但是其中一个调用了
    init()
    函数,而其中一个没有该函数。

    您在Xcode中为两个项目启用了相同的功能吗?@JoakimDanielson是的,一切都完全相同,plist也被更新了,我发现LocationManager文件3中的init没有被调用,我不知道为什么!!?
    import Foundation
    import UIKit
    import SwiftUI
    import MapKit
        
    struct MapView: UIViewRepresentable {
            
     typealias UIViewType = UIView
            
            
      func makeCoordinator() -> Coordinator {
                Coordinator(self)
      }
                 
      func makeUIView(context: Context) -> UIView {
                let map = MKMapView()
                
                map.delegate = context.coordinator
                map.showsUserLocation = true
                return map
      }
            
      func updateUIView(_ uiView: UIView, context: Context) {
                
      }
                  
    }
    
    import Foundation
    import MapKit
    
    class Coordinator: NSObject, MKMapViewDelegate {
            
     var control: MapView
            
     init(_ control: MapView) {
                self.control = control
     }
            
            
    }
    
    class GetUserLocation: NSObject, ObservableObject, CLLocationManagerDelegate {
            
     let locationManager = CLLocationManager()
     @Published var location: CLLocation? = nil
            
     override init() {
      super.init()
                
      self.locationManager.delegate = self
      self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
      self.locationManager.distanceFilter = kCLDistanceFilterNone
      self.locationManager.requestWhenInUseAuthorization()
      self.locationManager.startUpdatingLocation()
                
     }
            
            
      func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
               
                guard let location = locations.last else {
                    return
                }
                
                self.location = location
      }
            
            
    }