removeAtIndex con didSet

Tenemos una class con una propiedad de matriz que tiene un observador didSet . Sin embargo, parece que cuando llamamos removeAtIndex en esta matriz, se didSet observador didSet . ¿Hay alguna forma de que podamos evitar que esto suceda?

 var items: [String] = [] { didSet { println(self.items.count) } } ... func removeIndex(index: Int) { self.items.removeAtIndex(index) // now didSet is called, but we don't want that } 

El método didSet se llamará automáticamente, si no desea ejecutar las líneas de código en el método didSet, los siguientes trucos pueden funcionar para usted.

  1. Tome Bool variable Bool y, en el método willSet observer, hágalo a verdadero, en el método didSet verifique el estado de esta variable bool y, si es true, ignore, e inmediatamente hágalo a falso.

  2. En el método didSet observador, obtendrá el valor antiguo de la matriz y searchá el conteo, y lo comparará con el conteo actual.

Bastante inesperado

Para mi caso, pude mantener una variable de índice que avance, en lugar de sacar elementos de la matriz.