iPhone 3.0 Compass: كيف تحصل على عنوان؟
-
20-08-2019 - |
سؤال
أنا جديد نسبيًا في Objective-C ولا أعرف الكثير عنه حتى الآن ، لذلك أعتذر عن ما هو على الأرجح سؤالًا هواة حقًا.
أحاول الحصول على العنوان المغناطيسي من Clinging و CllocationDirection. ومع ذلك ، أحصل على أخطاء تجميع لهذا السطر من الكود:
locationLabel.text = [[[location course] magneticHeading] stringValue];
الأخطاء هي:
warning: invalid receiver type 'CLLocationDirection'
error: cannot convert to a pointer type
أنا لا أفهم حقًا ما أفعله خطأ هنا. الرجاء المساعدة!
المحلول
فيما يلي الخطوات اللازمة لاستخدام البوصلة.
1) تحقق من توفر: إذا كان headingAvailable
خاصية مدير الموقع هي نعم ، ثم يمكنك استخدام البوصلة.
2) استخدم طريقة مدير الموقع -(void) startUpdatingHeading
للبدء في تلقي المعلومات التي تبحث عنها
3) استرجاع هذه المعلومات في الواقع باستخدام طريقة المندوب (لا تنسى أن تضع نفسك كمندوب)
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
أتمنى أن يساعدك هذا.
نصائح أخرى
Magneticheading هو من نوع CllocationDirection ، وهو ببساطة typedef لنوع البيانات البدائية "مزدوج". في مثالك ، تحاول إرسال رسالة إلى شيء ليس كائنًا! يجب عليك ببساطة تنسيق المزدوج مثل ذلك:
locationLabel.text = [NSString stringWithFormat:@"Heading %.3f", [[location course] magneticHeading]];
كيف يتم تخصيص وتهيئة location
؟ تأكد location
يتم تعريفه على أنه أ (CLLocationDirection *)
وليس مجرد أ (CLLocationDirection)
.