سؤال

أعتقد أنني أفتقد شيئا واضحا في مكان ما. لدي (cllocation *) duequeriedlocation محددة في الرأس كخاصية وتوليفها. أريد أن أحديثها في الموقع: DidupdateToLocation: forlocation:

- (الفراغ) الموقعماناجر: (CllocationManager *) Manager DidupDateToLocation: (Cllocation *) newlocation forlocation: (cllocation *) OldLocation {clloceandistance dist = [denqueradlocation getdistancefrom: newlocation]؛ إذا كان (dist> 1000) {desnouredlocation = newlocation؛ [البحوث الذاتية: duequeriedlocation]؛ } إذا ([عدد نقاط النتيجة]> 0) {[الذاتي findanddisplaynearestlocation: الموقع]؛ }}

يتم تخصيص DuequeriedLocation و INIT'D في ViewDIDLoad.

القضية هي بالطبع lastQueriedLocation = newLocation; النتائج في EXC_BAD_ACCESS. وبعد إذن ما هو النهج الصحيح لاستمرار النظامي؟

إذا كان ذلك يساعد على جعل المشكلة أكثر ملموسة، فإن البحث يدعو خدمة ويب جلب POI على بعد كيلو طن من الموقع - لذلك أريد فقط أن أفعل ذلك عندما انتقلنا إلى 1 كم ... لكن ما زلت أريد إبقاء الدقة في أحسن الأحوال يمكن أن تسليط الضوء على الأقرب، انتقل الخريطة إلى ذلك.

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

المحلول

أنت فقط تقوم بإعداد Ivar بدلا من الممتلكات المركبة، مما يعني أن NewLocation لا يحتفظ به العقار.

يستبدل lastQueriedLocation = newLocation; مع:

[self setLastQueriedLocation:newLocation];

أو، إذا كنت تفضل استخدام DOT-Notation:

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