Ну, что-то оказывается перед необходимостью смотреть, и цикличное выполнение более эффективно, чем рекурсия (так как рекурсия хвоста не полностью реализована)... поэтому, если Вы просто не хотите циклично выполнять себя, затем любой из:
bool has = arr.Contains(var); // .NET 3.5
или
bool has = Array.IndexOf(arr, var) >= 0;
Для получения информации: избегают имен как var - это - ключевое слово в C# 3.0.
Вам, вероятно, придется реализовать -mapView: didAddAnnotationViews:
на вашем MKMapViewDelegate
, а затем поиграть с их порядком через их супервизор, возможно, с помощью таких методов, как -bringSubviewToFront:
.
Может быть это то, что вы ищете (Как определить порядок перекрытия MKAnnotationViews)