خاصت خاصية mkmapview.userslocation إلى 0،0 بعد السماح بالتطبيق لاستخدام الموقع الحالي
-
19-09-2019 - |
سؤال
في المرة الأولى التي يحاول فيها المستخدم استخدام الموقع الحالي خاصية الخريطة. في المرة التالية التي قمت بتحميل العرض الذي يحتوي على خريطة موقع المستخدمين موجود دائما.
أنا أقوم بإعداد خاصية map.showsuserlocation إلى YES على ViewDidIDLoad وعندما يتم تحميل الخريطة على الشاشة، فإن النقطة الزرقاء موجودة ولكن عندما أحاول الحصول على الإحداثيات مع MAP.USERLOATION.
يذهب تدفق البرنامج - (الفراغ) ViewDIDIDLoad: 1) قم بتعيين ShowUsUserLocation إلى YES 2) قم بتعيين مؤقتا لاستدعاء طريقة 6 ثوان في وقت لاحق يمنح موقع المستخدمين من خاصية MAP.UserLocation
- (الفراغ) GetUserslocation 1) طباعة موقع المستخدمين
تعمل هذه العملية بشكل رائع بعد أول مرة قمت بتحميل الرأي، ولكن أول مرة يتم فيها تجديد العرض ويتعين على المستخدم منح إذن لاستخدام موقعهم يعود الإحداثيات 0،0
أي شخص لديه أي فكرة لماذا يحدث هذا وكيف يمكنني العمل من حوله؟
شكرا!
المحلول
بدلا من الانتظار بشكل تعسفي ست ثوان، يجب أن تنفذ CLLocationManagerDelegate
ويلاحظ متى
locationManager:didUpdateToLocation:fromLocation:
يطلق عليه إعطائك تحديث الموقع الأول، والذي قد يستغرق وقتا طويلا أو أقل من ذلك.
نصائح أخرى
ديفيد هو الصحيح، لكنني لاحظت أنني أحظي أحيانا بالطريقة التي تم استدعاؤها بموقع 0،0. يجب عليك تتجاهل أي مكالمة من هذا القبيل، إلا إذا كنت تعتقد أن تطبيقك قد يتم استخدامه في البحر قبالة الساحل الغربي لأفريقيا.