Прямо сейчас вы используете общие объекты MKAnnotationView. Что вы хотите по-другому?
Короткий ответ сделать что-то вроде этого:
MKAnnotationView *myAnnotationView;
switch tmpAnnotation.type
{
case type1:
myAnnotationView= [[CustomAnnoation1 alloc] initWithAnnotation:tmpAnnotation
reuseIdentifier: type1ID];
case type2:
myAnnotationView= [[CustomAnnoation2 alloc] initWithAnnotation:tmpAnnotation
reuseIdentifier: type2ID];
default:
myAnnotationView= [[MKAnnotationView alloc] initWithAnnotation:tmpAnnotation
reuseIdentifier:PharmacyPinID];
}
NSString *chainString = tmpAnnotation.chain;
NSString *mapImage = [NSString stringWithFormat:@"map_icon_%@",chainString];
pinView.image = [UIImage imageNamed:mapImage];
Код выше предполагает, что tmpAnnotation является пользовательским типом, который имеет тип собственности, который говорит вам, какой пояснительные вы хотите. (Аннотации - любой объект, который вы хотите, который соответствует протоколу MKAnnation, поэтому он может иметь пользовательские свойства, если вы хотите.)
Он также предполагает, что у вас есть несколько различных пользовательских подклассов MKAnnotationView, которые вы хотите использовать.