2016-08-09 5 views
0

Я получаю сообщение об ошибке: «Класс« ViewController »не имеет инициализатора». Я сузил проблему до этой функции, которая называется. Кто-нибудь видит проблему?Получение ошибки инициализации на ViewController

let locationManager1: CLLocationManager // your location manager 
    func addBoundry(loc: CLLocation) 
    { 
     if let loc: CLLocation! = locationManager1.location { 
     let center: CLLocationCoordinate2D = loc!.coordinate 
     let lat: CLLocationDegrees = center.latitude 
     let long: CLLocationDegrees = center.longitude 
     var points = [CLLocationCoordinate2DMake(lat,long),CLLocationCoordinate2DMake(lat,long),CLLocationCoordinate2DMake(lat,long),CLLocationCoordinate2DMake(lat,long)] 
     let polygon = MKPolygon(coordinates: &points, count: points.count) 

     mapView.addOverlay(polygon) 

     } else { 
      print("no location...") 
     } 
    } 
+0

Проверить [эти результаты поиска] (http://stackoverflow.com/search?q=%5Bswift%5D+class+has+no+initializer). – rmaddy

ответ

1

когда назначить использование свойства необязательным.

let locationManager1: CLLocationManager? 
1

Когда вы говорите let locationManager1: CLLocationManager, вы объявить свойство, не должны быть nil, но на самом деле не назначая ничего к нему.

Таким образом, вам необходимо либо объявить init, что обеспечивает locationManager1 присваивается только одно значение (это let постоянная, не var, в конце концов!) Или инициализировать свойство инлайн как:

let locationManager1 = CLLocationManager()