كيفية إظهار استدعاء للكائن الذي يطبق بروتوكول MkAnnotation؟
سؤال
لدي كائن ينفذ بروتوكول MKAnnotation:
#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>
@interface VoiceMemoryAnnotation : NSObject <MKAnnotation> {
NSString * blobkey;
}
@property (nonatomic, retain) NSString * blobkey;
-(id)initWithBlobkey:(NSString *) key andCoordinate:(CLLocationCoordinate2D) c;
@end
بإضافة هذا الكائن، تعمل الخريطة بشكل مثالي لأنني أستطيع رؤية الدبابيس الحمراء يتم إسقاطها.ومع ذلك، تظهر المشكلة عندما أرغب في تعيين هذا الكائن لإظهار وسيلة شرح.
لا يمكنني إجراء annotation.showCallOut=YES لأن "MkAnnotation" لا يحتوي على هذه الخاصية، ولكن MkAnnotationView يمتلكها.كيف يمكنني الحصول على حول هذا؟
لقد حاولت تنفيذ رد اتصال الخريطة "viewForAnnotation" للتحقق من "VoiceMemoryAnnotation" وأحاول إرجاع "MkAnnotationView" جديد وتعيين وسيلة الشرح الخاصة به = YES، لكنني بدأت في الحصول على خطأ تجزئة عندما أفعل ذلك.
أي أفكار ما أفعله خطأ؟
المحلول
أولا تحتاج إلى إنشاء كائن التوضيح التوضيحي (الذي يقوم بتنفيذ بروتوكول Mkannotation) وإضافته إلى خريطتك باستخدام شيء مثل giveacodicetagpre.
سيتصل تلقائيا الطريقة التالية التي ستحتاج إلى تطبيقها: giveacodicetagpre.
في هذا التطبيق لن يعمل mkannotationView، يجب أن يكون mkpinannotationView.
نصائح أخرى
لست متأكدًا من أنني أفهم سؤالك تمامًا، لكني أتساءل، هو MKMapViews
'س - (void)selectAnnotation:(id <MKAnnotation>)annotation animated:(BOOL)animated
عن ماذا تبحث؟