سؤال

يمكنني استخدام الحلقة أدناه لملء موقعي. ومع ذلك، فإنه يظهر دائما دبوس واحد فقط في وقت واحد، بغض النظر عن عدد التكرارات التي أقوم بها.

لا يبدو أن العناصر المعلنة بشكل فردي لها تأثير أيضا.

أنا أستخدم 3.0 SDK الأولي باستخدام XCode 3.1.3 على OSX 10.5.8، لم يذكر تغيير سجل SDK 3.1 ذكر أي إصلاحات إلى إطار Mkmapkit، لذلك لم أشعر بالحاجة إلى تنزيل 2.5 جيجابايت ملف.

    for(NSDictionary* dict in results ){
    NSLog(@"Made Annotation  %@ at N%f E%f", [dict valueForKey:@"location"],[dict valueForKey:@"latitude"],[dict valueForKey:@"longitude"] );
    NSLog(@"List of keys %@", dict);

    LTAnnotation* pin = [[LTAnnotation alloc] initWithTitle: [dict valueForKey:@"location"]
                                     latitude: [dict objectForKey:@"latitude"]
                                    longitude: [dict objectForKey:@"longitude"]
    ];

    [MapView addAnnotation: pin];

}

هذا هو الإخراج من بيان التسجيل الأول

Made Annotation  London at N51.3 E0.07000000000000001
Made Annotation  Amsterdam at N52.22 E4.53

والثاني هو هيكل القاموس

List of keys {
    id = 0;
    latitude = 51.3;
    location = London;
    longitude = 0.07000000000000001;
    time = "12:00-13:00";
}
List of keys {
    id = 1;
    latitude = 52.22;
    location = Amsterdam;
    longitude = 4.53;
    time = "12:00-13:00";
}

في حال كنت مهتما هنا هو تنفيذ بلدي LDANNOTation

@interface LTAnnotation(Private)
    double longitude;
    double latitude;
@end

@implementation LTAnnotation

@synthesize title;
@synthesize subTitle;
-(id) initWithTitle:(NSString*)pTitle latitude:(NSNumber*)latDbl longitude:(NSNumber*) longDbl{
    self = [super init];

    self.title = pTitle;

    latitude = [latDbl doubleValue];
    longitude = [longDbl doubleValue];
    NSLog(@"Create Annotation for %@ at %fN %fE",pTitle,[latDbl doubleValue],[longDbl doubleValue]);
    return self;

}


-(CLLocationCoordinate2D) coordinate
{
    CLLocationCoordinate2D retVal;

    retVal.latitude = latitude;
    retVal.longitude = longitude;

    return retVal; 
}
@end

كل هذا يجمع بين إنتاج هذا ...

نص Alt http://img340.imageshack.us/img340/3788/picture1fg.png.

أي أفكار في المكان الذي سأخطأ؟ شكرا

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

المحلول

شيئين صغيرين لاحظت مما قد يساعد في حل المشكلة:

  • أنت لا تحرص على رقم التعريف الشخصي في نموذج الكود الأول الذي سيخلق تسرب
  • أنت لا تحقق ما إذا كانت "الذات = سوبر إينت]؛" في نموذج الرمز الثاني الخاص بك كان ناجحا ("إذا (النفس = [Super Init]) {...} عودة الذات"). يخرج NSLog أيضا فقط المعلمات التي تم تمريرها إلى طريقة INIT، وليس أساليب مثيل الكائن

والأهم من ذلك، لقد لاحظت هذا في طريقة التابعة الخاصة بك:

latitude = [latDbl doubleValue];
longitude = [longDbl doubleValue];

لا تستخدم أساليب الملحقات Accessive-C 2 نمط (Self.Latitude = ...) ولا نحتفظ بالقيم التلقائية. ربما يعني ذلك أن المتغيرات تختفي ولهذا السبب لا يمكنك رؤية التعليقات التوضيحية، لأنها لا تحتوي على إحداثيات صالحة.

نصائح أخرى

حاول تحديد خطوط الطول والعرض كما يطفو.

Show MkmapView إظهار المنطقة المحفوظة بشكل غير صحيح

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