Линия
NSMutableDictionary *dic = [placeName objectAtIndex:MKAnnotationView.annotion];
выдает ошибку, потому что MKAnnotationView
- это класс , а в классе нет метода annotation
. Вы бы использовали view.annotation
, поскольку view
является экземпляром MKAnnotationView
, который был выбран. Также, annotion
написано неправильно.
Однако это все равно не сработает, поскольку view.annotation
- это объект аннотации, а не целочисленный индекс в вашем массиве placeName
.
Вы говорите, что «нажимаете на стрелку вправо», что подразумевает правую дополнительную кнопку выноски в выноске (а не саму аннотацию). В этом случае вы должны определить выбор, используя метод делегата calloutAccessoryControlTapped
вместо didSelectAnnotationView
.
В обоих случаях вы сначала получите доступ к объекту аннотации с помощью view.annotation
, а затем с помощью некоторого свойства (возможно, пользовательского) объекта аннотации определите подробные данные.
Например, если вы создали собственный класс MKAnnotation
(вместо использования MKPointAnnotation
), вы можете добавить к нему свойство beepId
, установить его при создании аннотации и в методе делегата, который вы можете получить это так:
MyAnnotationClass *myAnnot = (MyAnnotationClass *)view.annotation;
objCont.mId = myAnnot.beepid;