2010-04-18 22 views
5

Konum tabanlı iPhone uygulamasının performansını optimize etmenin herhangi bir yolunu bulmaya çalışıyorum ve bazı kişilerin CLLocationManager'ınızı başlatıp durdurarak konum güncellemelerini zorlayabileceğinden bahsettiklerini gördüm. Alabildiğim en iyi doğruluğa ihtiyacım var, ve benim durumumdaki kullanıcı muhtemelen her birkaç saniyede bir güncellemeleri görmek ister (10 saniye gibi). Filtreleri buna göre ayarladım, ancak bazen cihaz üzerinde herhangi bir güncelleme yapamadığımı fark ettim.CLLocationManager güncellemelerini zorlama - yardımcı mı yoksa zarar mı veriyor?

Sabit bir zaman aralığı geçtiğinde (20 saniye kullanıyorum) bir güncelleştirmeyi zorlayan aşağıdaki yaklaşımı test ediyorum. Bağırmamda bunun gerçekten kullanıcıya daha doğru güncellemeler sağlamasına yardımcı olamayacağına ve CLLocationManager'ın sürekli çalışmasına izin vermenin muhtemelen en iyi yaklaşım olduğu söyleniyor. IS- aslında çekirdek konum performansını artırmak CLLocationManager güncellemelerini zorlayarak gelmez

- (void)forceLocationUpdate { 
    [[LocationManager locationManager] stopUpdates]; 
    [[LocationManager locationManager] startUpdates]; 
    [self performSelector:@selector(forceLocationUpdate) withObject:nil afterDelay:20.0]; 
} 

sorum? Performansa zarar veriyor mu? İyi bir GPS alışıyla açık bir alanda olduğum halde, bu yardım eder mi? Bunu deneyimleyen biri var mı? peşin

sayesinde Steve

+0

CLLocationManager'ınızı kurarken, "requestedAccuracy" ölçütünüzü iOS 4+ sürümünde bulunan "kCLLocationAccuracyBestForNavigation" olarak ayarlamanız gerekir. Ardından, işletim sisteminin optimize etmesine izin verin. – Nate

cevap

0

Ben de bir uygulamadaki bir 'Yakınımda' özelliği optimize etmek çalışıyorum - buldum aşağıdaki SO yararlı bilgiler yayınlamak: Eğer varsa link text

0

Şansı var İstediğiniz doğruluk ve mesafe filtreniz doğru ayarlandıysa, kullanıcı veya testiniz bir güncellemeyi tetikleyecek kadar hareket etmediğinden güncelleme almıyorsunuz. @Nate’in söylediği gibi, en iyi ya da bestForNav’a ayarlarsanız, daha fazla güncelleme alma şansınız daha yüksektir.

Konum yöneticinizi kapatmak için gerçek neden pil tasarrufu yapmaktır. GPS ve nav için cihazı kullanan çoğu kullanıcı fişini takılı halde bulundurmayı bilmez. Böyle bir şey için konum kullanmıyorsanız, başka bir konum güncellemesine ihtiyacınız olana kadar pilinizi kapatmak için konumunuzu kapatıp kapatmanız daha iyi olur. . Bu zamanlayıcılar veya bloklar ile yapılabilir. Asıl mesele, mümkün olan en fazla pilin nasıl çalıştırılabileceğini ve kaydedileceğini düşünmektir.

İlgili konular