خاصت خاصية mkmapview.userslocation إلى 0،0 بعد السماح بالتطبيق لاستخدام الموقع الحالي

StackOverflow https://stackoverflow.com/questions/1905286

سؤال

في المرة الأولى التي يحاول فيها المستخدم استخدام الموقع الحالي خاصية الخريطة. في المرة التالية التي قمت بتحميل العرض الذي يحتوي على خريطة موقع المستخدمين موجود دائما.

أنا أقوم بإعداد خاصية map.showsuserlocation إلى YES على ViewDidIDLoad وعندما يتم تحميل الخريطة على الشاشة، فإن النقطة الزرقاء موجودة ولكن عندما أحاول الحصول على الإحداثيات مع MAP.USERLOATION.

يذهب تدفق البرنامج - (الفراغ) ViewDIDIDLoad: 1) قم بتعيين ShowUsUserLocation إلى YES 2) قم بتعيين مؤقتا لاستدعاء طريقة 6 ثوان في وقت لاحق يمنح موقع المستخدمين من خاصية MAP.UserLocation

- (الفراغ) GetUserslocation 1) طباعة موقع المستخدمين

تعمل هذه العملية بشكل رائع بعد أول مرة قمت بتحميل الرأي، ولكن أول مرة يتم فيها تجديد العرض ويتعين على المستخدم منح إذن لاستخدام موقعهم يعود الإحداثيات 0،0

أي شخص لديه أي فكرة لماذا يحدث هذا وكيف يمكنني العمل من حوله؟

شكرا!

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

المحلول

بدلا من الانتظار بشكل تعسفي ست ثوان، يجب أن تنفذ CLLocationManagerDelegate ويلاحظ متى

locationManager:didUpdateToLocation:fromLocation:

يطلق عليه إعطائك تحديث الموقع الأول، والذي قد يستغرق وقتا طويلا أو أقل من ذلك.

نصائح أخرى

ديفيد هو الصحيح، لكنني لاحظت أنني أحظي أحيانا بالطريقة التي تم استدعاؤها بموقع 0،0. يجب عليك تتجاهل أي مكالمة من هذا القبيل، إلا إذا كنت تعتقد أن تطبيقك قد يتم استخدامه في البحر قبالة الساحل الغربي لأفريقيا.

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