استدعاء سيتكورديناتي على مكبلاسيمارك تعطل التطبيق مع 'محدد غير معروف'

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

سؤال

لدي مكمابفيو أنا إضافة مكبلاسيمارك واحد لتمثيل موقع مبنى المستخدم قد حددت للتو.يمكن للمستخدم تحديد مبنى واحد فقط في كل مرة ، وأريد ببساطة نقل العلامة الموضعية إلى المبنى الجديد عند اختيار مبنى جديد.في المبنى الأول الذي يختارونه ، يعمل بشكل جيد ويضع دبوسا على الخريطة.عندما أحاول الاتصال setCoordinate على علامة موضعية لتحديث موقف علامة عند اختيار مبنى جديد على الرغم من ، أحصل على -[MKPlacemark setCoordinate:]: unrecognized selector sent to instance

في ميفيوكونترولر.ح لدي:

@property (nonatomic, strong)MKPlacemark *selectedBuildingPlacemark;

في ميفيوكونترولر.m

@synthesize selectedBuildingPlacemark;

...

if (self.selectedBuildingPlacemark == nil) {
        self.selectedBuildingPlacemark = [[MKPlacemark alloc] initWithCoordinate:myCoord addressDictionary:nil];
        [mapView addAnnotation:self.selectedBuildingPlacemark];
    }
    else {
        [self.selectedBuildingPlacemark setCoordinate:myCoord];
    }

اعتقدت مكبلاسمارك يتوافق مع مكانوتاتيون وبالتالي ينبغي تنفيذ setCoordinate.يمكن للشخص أن تظهر لي الخطأ من طرقي?

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

المحلول

وثائق MKAnnotation يقول:

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

لذا فإن الطريقة setCoordinate: اختياري ويتم تنفيذه فقط بواسطة الفئات التي تدعم السحب.وثائق MKPlacemark لا يشير إلى هذه الطريقة ، لذلك لم يتم تنفيذها.

لذلك يجب عليك إنشاء مثيل جديد في كل مرة تقوم فيها بتحديد مبنى جديد.

نصائح أخرى

إذا كنت لا تحتاج على وجه التحديد إلى استخدام MKPlacemark (أنها لا تبدو وكأنها لأنك تمرير لا شيء ل أدركديكتيوناري) ، هل يمكن استخدام MKPointAnnotation الطبقة بدلا من ذلك.

MKPointAnnotation الأدوات MKAnnotation ولكن يضيف setCoordinate الطريقة.

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