2015-02-11 8 views
11

nesne, ancak stres ve kötü kod bir sürü beni kurtaracak. Bir dizi güncellendiğinde izlemek mümkün mü? Örneğin, yöntem A a güncellendiğinde tetiklendiğinde temsilci bir tür olması mümkün, dizi a=[1,2,3,4 için a=[1,2,3]] değiştirir? diziniz sınıfınızda bir özellik iseMonitör değişiklikleri bu hiç de mümkün olup olmadığını hiçbir fikrim yok

+0

Neden gözlemlenebilir kendi protokolünü uygulamıyor ve diziler olun: Bu yazdırır

var myArray:[Int] = [1, 3, 4] { didSet { println("arrayChanged") } } 

dizisi Bir Int eklerseniz, kaldırıp Int, vb Genellikle olsa bir satırda koymak değişti söz konusu buna uygun mu? –

+0

Alternatif olarak, Diziyi güncelleştirirken, didChangeArray() yöntemini çağırdığında veya denetleyebileceğiniz bir genel boole döndüren bir sarmalayıcı nesnesi yapın. –

+0

Burada yatma vakti. Yarın (bir başkası akıllı bir fikirle karşı karşıya gelmedikçe) vereceğim. –

cevap

20

, mülk gözlemci kullanabilirsiniz. willSet değişiklikten önce çağrılır, didSet sonradan çağrılır. Bu gerçekten çok kolay.

var myArray:[Int] = [1, 3, 4] { didSet { println("arrayChanged") } } 
+0

Tam olarak aradığım şey, teşekkür ederim. –

+0

Teşekkür ederim, çok yardımcı oldu –

+6

Dahili dizi değişikliklerini izlemek için herhangi bir yolu var mı? MyArray.append (x) gibi mi? –

İlgili konular