2016-08-18 2 views
1

Я собираюсь отключить видео с YouTube, которое дает базовый пример использования служб определения местоположения Xcode для программирования пользовательского интерфейса некоторых видов карт на программа. Я выполнил шаги, приведенные в видеоролике о настройке программы, и при попытке скомпилировать приложение получить достаточно простую ошибку «Использование необъявленного типа».Swift: Использование CLLocationManagerDelegate и CoreLocation.framework приводит к ошибке «Использование необъявленного типа»

https://www.youtube.com/watch?v=qrdIL44T6FQ - Ссылка на видео youtube.

Проблема возникает в строке создания класса.

import UIKit 
import MapKit 
import CoreLocation 

class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate 
{              //^Use of undeclared type 

@IBOutlet weak var mapView: MKMapView! 

let locationManager = CLLocationManager() 
override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    self.locationManager.delegate = self 
    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest 
    self.locationManager.requestWhenInUseAuthorization() 
    self.locationManager.startUpdatingLocation() 
    self.mapView.showsUserLocation = true 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreate-d. 
} 

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 

    let location = locations.last 

    let center = CLLocationCoordinate2D(latitude: location!.coordingate.latitude, longitude: location!.coordinate.longitude) 

    let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 1, longitudeDelta: 1)) 

    self.mapView.setRegion(region, animated: true) 

    self.location.stopUpdatingLocation() 
} 

func locationManager(manager: CLLocationManager, difFailWithError error: NSError) 
{ 
    print("Errors: " + error.localizedDescription) 
} 


} 

Я не уверен, почему возникает ошибка. Я добавил CoreLocation.framework в раздел «Связывание с библиотеками». Я обязательно добавил «NSLocationWhenInUseUsageDescription» в Info.plist. Я подключил Map View Kit к самому коду в 2:26 в видео.

Другие способы сделать это также представляют интерес. Я только пытаюсь получить разрешение на предоставление базовых услуг для работы в программе.

Версия: Xcode Версия 7.3.1

ответ

0

Я создал новый проект и снова последовали шаги в видео, и проект теперь работает должным образом. Единственное, что могло вызвать эту проблему, я проверил Core Data при создании проекта. Я не думаю, что это именно то, почему это порождало ошибку, но если вы столкнулись с подобной ситуацией, убедитесь, что это поле осталось пустым.

3

В быстрых

Мне недоставало импорта CoreLocation. Я добавил следующую строку поверх моего файла, и она сработала.

Смежные вопросы