2012-12-25 15 views
5

NSUserDefaults belgeleri, dönemsel olarak synchronise yönteminin çağrıldığını, ancak ne sıklıkta söz etmediğini söylüyor. Google aramalarının 10 dakikası hiçbir şey göstermedi.NSUserDefaults ne sıklıkla senkronize edilir?

synchronise yöntemi ne sıklıkla çağırılır?

+0

Bilmiyoruz. Güvenmemem gereken bir uygulama detayı. Değişiklikleri sürdürmeniz gerekiyorsa, '- senkronize et '' manüel olarak. –

+0

Bununla birlikte, ne sıklıkta çağrıldığını merak ediyorsanız, neden basit bir 'NSLog() '' ya benzeyen bir yöntem yapmıyorsunuz ve bunu kendiniz buluyorsunuz? –

+0

Teşekkürler, bunu düşünmedim. – duci9y

cevap

8

Bu, açıklanmayan bir uygulama detayıdır (büyük olasılıkla sabit bir zaman aralığı değildir). Bununla birlikte, - [NSUserDefaults synchronize] numaralı telefonun üzerine hafifçe vuran bir yöntem gerçekleştirerek ve her senkronize olduğunda her zaman NSLog()'u arayacak şekilde uygulamanızı değiştirerek bulabilirsiniz.

+0

Programı başlattığımdan beri 20 dakika oldu ve değerleri değiştirdikten sonra bile 'senkronizasyon' çağrılmamış. Swizzling'i doğru yaptım. Şimdi vazgeçiyorum. – duci9y

+0

@ duci9y Tamam. Öğrenilen ders: Apple'a güvenme, çünkü onlar aldatıyorlar :) Kabul için teşekkürler. –

+3

Otomatik eşitleme, manuel eşitleme ile aynı kod yolundan geçmez (özellikle, NSUserDefaults'un kullandığı CFPreferences'da uygulanır). 10.7 ve iOS'ta, değişmeden sonra yaklaşık 15 saniyelik bir aralık, sabit olmasa da. Geliştirilmiş senkronizasyon performansı nedeniyle 10.8+ daha kısa. –