سؤال

وأنا أتساءل عما اذا كان هناك بعض الطرق لتجعل من ذلك لا عاد CLLocationManager تلقائيا موقع التخزين المؤقت. أنا أفهم أن الوثائق تقول "إن خدمة الموقع بإرجاع المكان الأول في أسرع وقت ممكن، والعودة المعلومات المخزنة مؤقتا عندما تكون متاحة" ولكن هذا الموقع مؤقتا يمكن أن يكون للغاية بعيدا عن موقع المستخدم الحالي وأود أن أكثر دقة إذا أمكن ذلك.

وشكرا على اي مساعدة!

هل كانت مفيدة؟

المحلول

وأنت لا يمكن أن يمنعه من التخزين المؤقت، ولكن ليس من الصعب لتصفية البيانات المخزنة مؤقتا. جوهر الموقع يتضمن الطابع الزمني مع مواقعها. مقارنة الطابع الزمني للموقع مع طابع زمني حفظ عندما بدأ التطبيق الخاص بك، وعليك أن تكون قادرا على معرفة المواقع التي هي قديمة (مؤقتا، وجدت قبل ذكر التطبيق) والتي هي جديدة. رمي بعيدا القديمة.

والطابع الزمني المكان هو NSDate، حتى مجرد الحصول على قيمة [NSDate date] عندما يبدأ التطبيق الخاص بك واستخدام ذلك كنقطة رجوع اليها عند تصفية المواقع. هل يمكن حتى تتخلص من القيمة المرجعية بمجرد البدء في الحصول على البيانات الجديدة والتعامل مع التاريخ المرجعي صفرا كما يعني أن مواقع جديدة يجب الوثوق بها.

نصائح أخرى

-(void)locationManager:(CLLocationManager*)manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation *)oldLocation 
{
    if ([newLocation.timestamp timeIntervalSinceNow] > -10.0) // The value is not older than 10 sec. 
    { 
         // do something 
    } 
 }

ويمكنك استخدام هذه الخاصية من CLLocationManager:

@property(readonly, NS_NONATOMIC_IPHONEONLY) CLLocation *location;

وقيمة هذه الخاصية هي nil إذا كان أي وقت مضى تم استرجاع أي بيانات الموقع، وإلا، هذا هو المكان تخزين CoreLocation البيانات الخاصة به. لذلك، إذا كنت تريد دائما أن نبدأ من الصفر، وذلك ببساطة معرفة ما اذا كان هذا العقار nil أم لا. اذا كان nil، فأنت موافق. خلاف ذلك، تحتاج إلى إيقاف مدير موقعك وتشغيله مرة أخرى: هذا سوف فرض التحديث، الأمر الذي سيؤدي في قيمة مؤقتا يتم تجاوزها من قبل واحدة جديدة كنت قد تسببت فقط

.

وانظر جوابي هنا: كيفية إزالة مخبأ للcllocation؟  حول "كيفية إزالة مخبأ للcllocation". هذا يجب ان تحل مشكلتك بشأن مخبأ للCLLocationManager.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top