Половина лат / длинная дельта без необходимости расширения - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь объединить то, что у меня есть как extension, в мое struct MapView.

 extension MKCoordinateRegion {

    var boundingBoxCoordinates: [CLLocationCoordinate2D] {
        let halfLatDelta = self.span.latitudeDelta / 2
        let halfLngDelta = self.span.longitudeDelta / 2

1 Ответ

1 голос
/ 14 апреля 2020

Я не уверен, правильно ли я понимаю ваш вопрос, но я думаю, что проблема здесь: self.span в MKCoordinateRegion расширение.

extension MKCoordinateRegion {

    static let latitudeDelta: CLLocationDegrees = 1
    static let longitudeDelta: CLLocationDegrees = 1

        var boundingBoxCoordinates: [CLLocationCoordinate2D] {
            let halfLatDelta = MKCoordinateRegion.latitudeDelta / 2
            let halfLngDelta = MKCoordinateRegion.longitudeDelta / 2
            .....
    }
}

Если вам нужно объявить их как частные сообщения c свойство, добавьте ключевое слово private после static.

Два правила Swift extension, о которых следует упомянуть здесь:

  1. не может объявить сохраненное свойство. ошибка компилятора: Расширения не должны содержать хранимых свойств
  2. не может объявить свойство класса. ошибка компилятора: Свойства класса разрешены только внутри классов; используйте 'stati c' для объявления свойства * stati c (как я использовал в блоке кода ответа)
...