Проверка Metal API включена при использовании Map в swift - PullRequest
0 голосов
/ 03 апреля 2020

Я использую функцию отображения местоположения

, когда запускаю мое приложение, оно показывает мне это сообщение ->

Проверка API Metal Enabled Неустранимая ошибка: неожиданно обнаружен ноль при неявном развертывании необязательного значения : file

и вот мой код

import UIKit
import MapKit
import CoreLocation
class ViewController: UIViewController,CLLocationManagerDelegate {
    @IBOutlet weak var mymap: MKMapView!
    var locationManager: CLLocationManager!

    override func viewDidLoad() {
          checkLocationSevices()
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    func setupLocationManger()
    {
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
    }

    func checkLocationSevices()
    {
        if CLLocationManager.locationServicesEnabled()
        {
            setupLocationManger()
            checkLocationAuthorizatiob()
        }
        else
        {

        }
    }
    func checkLocationAuthorizatiob()
    {
        switch CLLocationManager.authorizationStatus()
        {
        case .authorizedWhenInUse:
            mymap.showsUserLocation = true
            break
        case .denied:
            break
        case .notDetermined:
            locationManager.requestWhenInUseAuthorization()
            break
        case .restricted:
            break
        case .authorizedAlways:
            break

         default:
            break
        }
    }
}

также я добавляю ti info.plist -> info.plist и вот изображение ошибки, которое я получаю myBuild

1 Ответ

0 голосов
/ 03 апреля 2020

здесь пропущено это ->

locationManager = CLLocationManager()

, потому что он просто делает это как -> var locationManager: CLLocationManager!

, поэтому значение locationManager будет будет, но при добавлении -> locationManager = CLLocationManager() -> вы получите значение locationManager

import UIKit
import MapKit
import CoreLocation
class ViewController: UIViewController,CLLocationManagerDelegate {
    @IBOutlet weak var mymap: MKMapView!
    var locationManager: CLLocationManager!

    override func viewDidLoad() {
      locationManager = CLLocationManager()
          checkLocationSevices()
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    func setupLocationManger()
    {
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
    }

    func checkLocationSevices()
    {
        if CLLocationManager.locationServicesEnabled()
        {
            setupLocationManger()
            checkLocationAuthorizatiob()
        }
        else
        {

        }
    }
    func checkLocationAuthorizatiob()
    {
        switch CLLocationManager.authorizationStatus()
        {
        case .authorizedWhenInUse:
            mymap.showsUserLocation = true
            break
        case .denied:
            break
        case .notDetermined:
            locationManager.requestWhenInUseAuthorization()
            break
        case .restricted:
            break
        case .authorizedAlways:
            break

         default:
            break
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...