Как узнать, увеличивается ли количество массивов в didUpdateLocations Swift - PullRequest
2 голосов
/ 06 марта 2020

Здравствуйте, я новичок в Swift. Я использую метод Google Maps Sdk didUpdateLocations, чтобы нарисовать путь на карте. Мне просто нужна помощь в отношении количества массивов ...
Я хочу запустить некоторые функции, если количество массивов увеличивается. Я храню lat и long в двух массивах.

var latarray = [Double]()
var longarray = [Double]()

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

           locationManager.startMonitoringSignificantLocationChanges()
           locationManager.startUpdatingLocation()

        myMapView.clear()


        if (self.latarray.count != 0 ) {
        longarray.append(long)
        latarray.append(lat)
        print ("lat array is \(latarray)count is \(latarray.count)")
        print ("long array is \(longarray)count is \(longarray.count)")
        }
            else {
            Print("array not increasing ")
               }
         let location = locations.last
        self.lat = (location?.coordinate.latitude)!
        self.long = (location?.coordinate.longitude)!


        let currtlocation = CLLocation(latitude: lat, longitude: long)

    }


Существует ли какой-либо оператор, который может показать, увеличивается ли содержимое массива при увеличении числа массивов.
Спасибо и всего наилучшего ..

1 Ответ

1 голос
/ 06 марта 2020

В Swift есть нечто, называемое наблюдателями свойств, которое вы можете использовать для выполнения кода при установке / изменении свойства. Это willSet и didSet, и они отлично работают и для массивов. Вы можете узнать больше о свойствах и наблюдателях свойств здесь

Пример

struct Test {
    var array = [Int]() {
        didSet {
            print("Array size is \(array.count)")
        }
    }
}

var test = Test()

test.array.append(1)
test.array.append(1)
test.array.append(1)
test.array = []

отпечатков

Размер массива 1
Размер массива 2
Размер массива 3
Размер массива 0

...